如何通过添加UNIQUE来更改列

时间:2013-06-25 16:33:00

标签: postgresql-9.1

我想在不添加约束的情况下更改列:

我的专栏定义:

...  
name character varying(64) not nul,
...

我想要的是什么:

...
name character varying(64) unique not nul,
...  

我试过了:

alter table T add unique(name);

但建议使用索引约束。

2 个答案:

答案 0 :(得分:1)

alter table T add constraint unique_name unique (name);

请参阅手册中的示例:http://www.postgresql.org/docs/current/static/sql-altertable.html

或作为表格定义的一部分:

create table t
(
   ...,
   name character varying(64) not null,
   constraint unique_name unique (name)
);

或仅作为唯一索引:

create unique index unique_name on t (name);

答案 1 :(得分:0)

文档建议:

alter table T add unique using index I

http://www.postgresql.org/docs/9.1/static/sql-altertable.html

这假设你已经预先创建了我唯一的索引。