I'm thinking more along the lines of creating a bunch of temp tables, each with one of the constraints. Then, in a loop, throw the record at each of these temp tables and collect up the violations.
Exploring now hot to get the pieces I need from the metadata tables to do this. -----Original Message----- From: Tom Lane [mailto:[email protected]] Sent: Friday, May 21, 2010 3:10 PM To: Gauthier, Dave Cc: [email protected] Subject: Re: [GENERAL] getting all constraint violations "Gauthier, Dave" <[email protected]> writes: > Is there a way to temporarily suspend constraint checking for a particular > constraint inside of the transaction, try the insert again, capture the next > violation, then the next, etc... then rollback after all have been collected? You could do something like BEGIN; ALTER TABLE DROP CONSTRAINT ... INSERT ... ROLLBACK; The major deficiency of this is that the ALTER TABLE would grab exclusive lock on the table, so this doesn't scale if you need to have several insertions happening in parallel. regards, tom lane -- Sent via pgsql-general mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
