Re: Adding Foreign Key constraints outside of table def.
От | Gregory Wood |
---|---|
Тема | Re: Adding Foreign Key constraints outside of table def. |
Дата | |
Msg-id | 001f01c0fb30$d6757dc0$7889ffcc@comstock.com обсуждение исходный текст |
Ответ на | Adding Foreign Key constraints outside of table def. (Mike Haberman <mikeh@ncsa.uiuc.edu>) |
Ответы |
Re: Adding Foreign Key constraints outside of table def.
|
Список | pgsql-general |
> 1. Is there a way to add it without worrying about the > syntax of "RI_FKey_..()" e.g. (this would be nice if it worked) > > ADD CONSTRAINT $fk.LocalColumnNames FOREIGN KEY ($fk.LocalColumnNames) > REFERENCES $fk.ForeignTableName ($fk.ForeignColumnNames) > ON DELETE set null, ON UPDATE cascade; Here is how I added a foreign key to a table after the fact: ALTER TABLE foo ADD FOREIGN KEY (bar) REFERENCES foo2 (bar2) ON DELETE SET NULL; Haven't actually tried within the ADD CONSTRAINST syntax. > 2.... skipped > 3. If I drop a table, how come the constainsts for that > table are NOT dropped as well? I don't know about this one, I hope someone more knowledgable will step in. I'm surprised if this is indeed the behavior. > 4. for circular references, > Table A references B > B references C > C references A > > is it impossible to do an insert (assuming all the foreign key > constraints are set up) ? You'll have to set up at least two of the constraints as INITIALLY DEFERRED, then perform any inserts to all three tables inside of a transaction. Greg
В списке pgsql-general по дате отправления: