如果表存在,如何删除Postgres约束?

时间:2017-11-20 22:43:33

标签: sql postgresql constraints

如果在Postgres中存在表 tbl_foo 并且约束本身存在,我该如何删除 fk_bar

我试过

ALTER TABLE IF EXISTS tbl_foo DROP CONSTRAINT IF EXISTS fk_bar;

但是当tbl_foo不存在时,这给了我一个错误。如果表存在,它会成功执行。

1 个答案:

答案 0 :(得分:1)

https://www.postgresql.org/docs/9.2/static/sql-altertable.html

ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]

https://www.postgresql.org/docs/9.1/static/sql-altertable.html

ALTER TABLE [ ONLY ] name [ * ]

9.2之前没有这样的语法:

ALTER TABLE IF EXISTS

https://www.postgresql.org/docs/9.2/static/release-9-2.html

  

将IF EXISTS选项添加到某些ALTER命令(Pavel Stehule)