Re: check constraints
От | Oliver Elphick |
---|---|
Тема | Re: check constraints |
Дата | |
Msg-id | 1091633840.31602.2924.camel@linda обсуждение исходный текст |
Ответ на | check constraints (Jodi Kanter <jkanter@virginia.edu>) |
Список | pgsql-admin |
On Wed, 2004-08-04 at 15:50, Jodi Kanter wrote: > I have little experience with postgres' check constraint features and > was hoping to get some guidance. We have a table which houses links to > various user files. The PK of this table is fi_pk. There are several > tables in which a foreign key (fi_fk) to this field exist. We are > implementing a feature which will allow users to remove old files from > their repositories. It would be nice to have a check that goes out to > all tables that have this fi_fk field and checks to see if the fi_pk > for their particular record exists and would then not allow the > deletion if a link occurs somewhere. > I realize that I can do this with specific SQL in the code but was > wondering if it's possible to implement a sort of general database > wide check of this nature. That way if future tables are added with > this FK field then the code would not have to be altered. You do it when you define the foreign key in the other tables: CREATE other_table ( ..., fi_fk ... REFERENCES table (fi_pk) ON UPDATE CASCADE ON DELETE RESTRICT, ... ); This says that if the foreign key field changes its value in table the corresponding value in other_table should be changed too. If an attempt is made to delete the value in table when it is referenced by any rows in other_table, the deletion will not be permnitted. -- Oliver Elphick olly@lfix.co.uk Isle of Wight http://www.lfix.co.uk/oliver GPG: 1024D/A54310EA 92C8 39E7 280E 3631 3F0E 1EC0 5664 7A2F A543 10EA ======================================== "And not only so, but we glory in tribulations also; knowing that tribulation worketh patience; And patience, experience; and experience, hope." Romans 5:3,4
В списке pgsql-admin по дате отправления: