删除unique约束
删除列上的unique约束,可以使用alter table...drop语句,形式如下:
alter table table_name drop unique(column_name)
如果约束有名称,也可以使用指定名称的方式删除该约束,语句形式如下:
alter table table drop constraint constraint_name;
具体的操作如下:
SQL> create table person
2 (pid number(4) not null unique,
3 pname varchar2(10) unique,
4 sex char(2)
5 );
表已创建。
上面创建一张person表,为pid和pname都指定唯一约束
SQL> insert into person values(1,‘aaa‘,‘女‘);
已创建 1 行。
SQL> insert into person values(2,‘aaa‘,‘女‘);
insert into person values(2,‘aaa‘,‘女‘)
*
第 1 行出现错误:
ORA-00001: 违反唯一约束条件 (SYSTEM.SYS_C0010079)
SQL> insert into person values(2,‘abcd‘,‘女‘);
已创建 1 行。
如上面所示,当添加的名字相同时报错。
SQL> insert into person values(2,‘abcd‘,‘女‘);
已创建 1 行
修改下pname,此时就没报错。
再创建另一张表。
SQL> create table p2(
2 pid number(4),
3 pname varchar2(10),
4 psex char(2),
5 constraint p2_unique unique(pid,pname)
6 );
表已创建。
SQL> alter table p2 add constraint unique_p2sex unique(psex); --为psex添加unique
表已更改。
SQL> alter table p2 drop unique (psex); --删除unique唯一约束
表已更改。
SQL> alter table p2 drop constraint p2_unique;
表已更改。
SQL>