如何更改PostgreSQL表并使列唯一?

时间:2009-01-22 15:07:21

标签: sql postgresql unique-constraint

我在PostgreSQL中有一个表,其架构如下所示:

CREATE TABLE "foo_table" (
    "id" serial NOT NULL PRIMARY KEY,
    "permalink" varchar(200) NOT NULL,
    "text" varchar(512) NOT NULL,
    "timestamp" timestamp with time zone NOT NULL
)

现在,我希望通过ALTER-ing表使表中的固定链接唯一。 有人可以帮我吗?

TIA

3 个答案:

答案 0 :(得分:215)

我从PostgreSQL文档中找到了它,确切的语法是:

ALTER TABLE the_table ADD CONSTRAINT constraint_name UNIQUE (thecolumn);

感谢Fred

答案 1 :(得分:194)

或者,让DB使用:

自动分配约束名称
ALTER TABLE foo ADD UNIQUE (thecolumn);

答案 2 :(得分:30)

还可以创建超过1列的唯一约束:

ALTER TABLE the_table 
    ADD CONSTRAINT constraint_name UNIQUE (column1, column2);