码迷,mamicode.com
首页 > 数据库 > 详细

oracle的unique约束

时间:2015-03-18 14:05:10      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:oracle的check约束   check约束   

         unique约束是指唯一约束,用于要求列种不允许出现重复值。可以为单独的列添加一个unique约束,也可以为多个列添加一个unique约束(属于表级约束)。如果为多个列添加一个unique约束,只需要保证这多个列的值不会全部相同即可。
     在创建表时,为列添加unique约束,形式如下:
column_name data_type [constraint constraint_name] unique或
create table table_name(
column_name data_type,[,...]
[constraint constraint_name] unique(column_name)
[,...]
)
也可以为已经创建的表中的列提娜姬unique约束,这时就需要使用alter talbe ..add语句,形式如下:
alter table table_name add [constraint constraint_name] unique(column_name);


      删除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>

oracle的unique约束

标签:oracle的check约束   check约束   

原文地址:http://blog.csdn.net/qq_20545159/article/details/44409239

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!