据我所知,PostgreSQL 中唯一删除主键的方法是:
ALTER TABLE schema.tableName DROP CONSTRAINT constraint_name;
默认情况下,约束名为tableName_pkey
。然而,有时如果表已重命名,则无法获取原始表名以构建正确的约束名。
例如,对于一个创建为A
然后重命名为B
的表,约束仍然是A_pkey
,但我只有表名B
。
您知道仅通过知道模式名称和表名称就可以删除pkey约束的正确方法吗?
我正在编写程序来完成此操作,因此我只需要使用SQL查询。像“打开pgAdmin并查看约束名”这样的解决方案将无法使用。
SELECT 'ALTER TABLE ' || table_schema || '.' || table_name || ' DROP CONSTRAINT ' || constraint_name AS my_query
- rjchicago