我想在不添加约束的情况下更改列:
我的专栏定义:
...
name character varying(64) not nul,
...
我想要的是什么:
...
name character varying(64) unique not nul,
...
我试过了:
alter table T add unique(name);
但建议使用索引约束。
答案 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
这假设你已经预先创建了我唯一的索引。