如何在Postgres中的列上放置唯一约束?

时间:2018-07-25 13:22:30

标签: postgresql constraints ddl

这是我的数据库表

CREATE TABLE cart (
  id           UUID      NOT NULL PRIMARY KEY,
  shop_user_id UUID UNIQUE
);

当我尝试删除UNIQUE上的shop_user_id约束时,得到了SQL 42601 error

这是我用来删除唯一约束的查询

ALTER TABLE cart DROP UNIQUE shop_user_id;

2 个答案:

答案 0 :(得分:6)

要查找唯一约束的名称,请运行

SELECT conname
FROM pg_constraint
WHERE conrelid = 'cart'::regclass
  AND contype = 'u';

然后按如下所示删除约束:

ALTER TABLE cart DROP CONSTRAINT cart_shop_user_id_key;

cart_shop_user_id_key替换为您从第一个查询中获得的任何内容。

答案 1 :(得分:1)

例如:

    CREATE TABLE teachers( teacher_id SERIAL PRIMARY KEY,
email VARCHAR(250) UNIQUE NOT NULL);


select * from information_schema.table_constraints;

ALTER TABLE teachers DROP CONSTRAINT teachers_email_key;