如何更改PostgreSQL表并使列唯一?
问题描述:
我有一个表中的PostgreSQL在架构是这样的:如何更改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
答
我想通了,从PostgreSQL文档,确切的语法是:
ALTER TABLE the_table ADD CONSTRAINT constraint_name UNIQUE (thecolumn);
感谢Fred。
答
或者,有DB使用自动分配约束名称:
ALTER TABLE foo ADD UNIQUE (thecolumn);
答
它也可以创造超过1列的唯一约束:
ALTER TABLE the_table ADD CONSTRAINT constraint_name UNIQUE (column1, column2);
+0
这似乎不适用于类似于: `ALTER TABLE actions ADD CONSTRAINT actions_unique_constraint UNIQUE(payload :: text,name);`或`ALTER TABLE actions ADD CONST RAINT actions_unique_constraint UNIQUE((payload :: text),name);` – writofmandamus 2017-10-06 22:22:59
`创建foo_table唯一索引(永久链接)` – 2014-10-20 17:48:02