如何删除 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;
这是我的数据库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;