Re: protected ON DELETE CASCADE
От | Jan Wieck |
---|---|
Тема | Re: protected ON DELETE CASCADE |
Дата | |
Msg-id | 200108231355.f7NDtb301413@jupiter.us.greatbridge.com обсуждение исходный текст |
Ответ на | protected ON DELETE CASCADE (Murray Hobbs <murray@efone.com>) |
Список | pgsql-general |
Murray Hobbs wrote: > > here's my problem > > i have tables A, B, C, D > > A <- B > A <- C <- D > > i want to maintain integrity so that if A is deleted from then so is > anything referencing from B and C - no problem ON DELETE CASCADE > > but if there are any D's that point back to A (through composite key in > C) i don't want the delete to go ahead - at all - i want an error > message and condition So B and C reference A with ON DELETE CASCADE, while D references C without it. The default behaviour of a foreign key constraint is ON DELETE NO ACTION, which confusingly enough aborts the transaction (it's defined that way in the SQL standard, don't ask me why they called it NO ACTION). Thus a deletion from A will cascaded delete from C, but then the constraint on D will abort the transaction if this automatic delete from C would orphan a reference from D. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com # _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
В списке pgsql-general по дате отправления: