如何删除 Postgres 中列的唯一约束?

How to drop a unique constraint on a column in Postgres?

这是我的数据库table

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

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

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

ALTER TABLE cart DROP UNIQUE shop_user_id;

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

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 替换为您从第一个查询中获得的任何内容。

例如:

    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;