Daniel Farina <drfar...@acm.org> writes: > On Fri, Nov 5, 2010 at 11:04 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: >> Daniel Farina <drfar...@acm.org> writes: >>> pg_dump --clean will successfully and silently wipe out a foreign key >>> right now, should it exist, >> >> No, it will not, because we don't use CASCADE in the drop commands.
> I know it does not use CASCADE, but if I understand it correctly, > foreign keys are dropped between tables, and then the tables are > dropped. (effectively a manual cascade) You're missing the point. The scenario I'm concerned about is: source database contained table foo target database contains table foo, and table bar, and bar has an FK reference to foo The FK constraint is not known to pg_dump, and therefore there will not be a DROP CONSTRAINT for it in the dump. So the DROP on the referenced table will fail. The only way we could make it succeed would be to use CASCADE, which we don't do specifically because this sort of thing seems quite unsafe. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers