0

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

我的列定义:

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

我想要的是:

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

我试过了:

alter table T add unique(name);

但建议使用索引约束。

4

2 回答 2

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);
于 2013-06-25T17:18:18.090 回答
0

文档建议:

alter table T add unique using index I

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

这将假设您事先创建了唯一索引 I。

于 2013-06-25T16:50:19.987 回答