Re: Cascading Changes
От | Oliver Elphick |
---|---|
Тема | Re: Cascading Changes |
Дата | |
Msg-id | 1021410662.1521.387.camel@linda обсуждение исходный текст |
Ответ на | Cascading Changes (Tom Ansley <tansley@law.du.edu>) |
Список | pgsql-novice |
On Tue, 2002-05-14 at 17:08, Tom Ansley wrote: > Hi, > > I have tried looking for cascading changes through multiple tables and don't > seem to be able to find anything in the documentation. Can anybody point me > in the right direction. > > I just want to change the primary key in two linked records in two different > tables from 'Fox' to 'FOX' > This will happen automatically if one table makes a foreign key reference to the other: CREATE TABLE t1 (id TEXT PRIMARY KEY, ... ); CREATE TABLE t2 (id TEXT PRIMARY KEY REFERENCES t1 (id) ON UPDATE CASCADE ON DELETE RESTRICT, ... ); Now any entry in t2.id must match a primary key in t1.id. Whenever such a key is changed, it is also changed in t2.id. A row in t1 cannot be deleted if it is referenced in t2.id. If a foreign key relationship is not appropriate (t2.id may contain something that is not a key in t1) you can use triggers to do whatever you want, but you will have to program it all. -- Oliver Elphick Oliver.Elphick@lfix.co.uk Isle of Wight http://www.lfix.co.uk/oliver GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C "Yea, though I walk through the valley of the shadow of death, I will fear no evil, for thou art with me; thy rod and thy staff they comfort me." Psalms 23:4
Вложения
В списке pgsql-novice по дате отправления: