From: | Thomas Kellerer <spam_eater(at)gmx(dot)net> |
---|---|
To: | pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Dropping all constraints in database |
Date: | 2011-03-14 09:43:09 |
Message-ID: | ilknvd$n3t$1@dough.gmane.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Lukasz Brodziak, 14.03.2011 10:26:
> Hello,
>
> Is there a way of disabling/dropping all constrainsts in a given
> database? I need to restore a db which has duplicate values in nearly
> half of its tables then remove duplicates and then add the constraints
> back. Is there a way to do that for each table in one
> statement/function? It may be even a java/perl script if it can do
> such a thing. Thank You all in advance for help.
>
Something like this?
DO $body$
DECLARE r record;
BEGIN
FOR r IN SELECT table_name,constraint_name
FROM information_schema.constraint_table_usage
LOOP
EXECUTE 'ALTER TABLE ' || quote_ident(r.table_name)|| ' DROP CONSTRAINT '|| quote_ident(r.constraint_name) || ';';
END LOOP;
END
$body$;
If you are not on 9.x yet, you can simply spool the output of a statement like this:
SELECT 'ALTER TABLE '||table_name||' DROP CONSTRAINT '||constraint_name||';'
FROM information_schema.constraint_table_usage
to a file, and then run that file to drop all constraints.
Regards
Thomas
From | Date | Subject | |
---|---|---|---|
Next Message | Glyn Astill | 2011-03-14 10:51:38 | Re: Dropping all constraints in database |
Previous Message | Lukasz Brodziak | 2011-03-14 09:26:52 | Dropping all constraints in database |