Thread: Drop all constraints

Drop all constraints

From
Gianvito Pio
Date:
Hi all,
is there a way to drop all constraints of a table?

I found this workaround in the manual:

CREATE TABLE temp AS SELECT * FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors AS SELECT * FROM temp;
DROP TABLE temp;

Is there any other way to do it?
Thanks


Re: Drop all constraints

From
Andreas Kretschmer
Date:
Gianvito Pio <pio.gianvito@gmail.com> wrote:

> Hi all,
> is there a way to drop all constraints of a table?
>
> I found this workaround in the manual:
>
> CREATE TABLE temp AS SELECT * FROM distributors;
> DROP TABLE distributors;
> CREATE TABLE distributors AS SELECT * FROM temp;
> DROP TABLE temp;

I think, you can change the table-name from temp to distributors:
(alter table temp rename to distributors), it's cheaper.

>
> Is there any other way to do it?

Maybe. I think you can walk through the system catalogs to find all
constraints for a table and drop them (alter table foo drop constraint
...). I think, you should start with
http://www.postgresql.org/docs/8.4/interactive/catalog-pg-constraint.html




Andreas
-- 
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect.                              (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly."   (unknown)
Kaufbach, Saxony, Germany, Europe.              N 51.05082°, E 13.56889°