我想在不添加约束的情况下更改一列:
我的列定义:
...
name character varying(64) not nul,
...
我想要的是:
...
name character varying(64) unique not nul,
...
我试过了:
alter table T add unique(name);
但建议使用索引约束。
我想在不添加约束的情况下更改一列:
我的列定义:
...
name character varying(64) not nul,
...
我想要的是:
...
name character varying(64) unique not nul,
...
我试过了:
alter table T add unique(name);
但建议使用索引约束。
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);
文档建议:
alter table T add unique using index I
http://www.postgresql.org/docs/9.1/static/sql-altertable.html
这将假设您事先创建了唯一索引 I。