永发信息网

Oracle primary key和unique key的区别与联系

答案:2  悬赏:20  手机版
解决时间 2021-04-01 19:12
Oracle primary key和unique key的区别与联系
最佳答案
primary key与unique key都是唯一性约束。但二者有很大的区别:
  1.作为primary key的1个或多个列必须为NOT NULL,
  如果建表时此列设为NULL,在增加PRIMARY KEY时,列自动更改为NOT NULL。
  而unique key约束的列可以为null,这是primary key与unique key最大的区别。
  2.一个表只能有一个primary key(单列或多列,多列主键叫联合主键),但可以有多个
  这里,我们看到primary key t_pk变成了unique约束,证明了主键约束也是唯一约束。
  转载,仅供参考。
全部回答
转: •primary key与unique key都是唯一性约束。但二者有很大的区别: •1.作为primary key的1个或多个列必须为not null, • 如果建表时此列设为null,在增加primary key时,列自动更改为not null。 • 而unique key约束的列可以为null,这是primary key与unique key最大的区别。 •2.一个表只能有一个primary key(单列或多列,多列主键叫联合主键),但可以有多个unique key。 •实例1: •create table t(c1 number(2),c2 date,c3 varchar2(5),c4 int); •desc t; •name type nullable default comments •---- ----------- -------- ------- -------- •c1 number(2) y •c2 date y •c3 varchar2(5) y •c4 integer y •// •实例2:添加primary key •alter table t add constraint t_pk primary key(c1,c2); •desc t; •name type nullable default comments •---- ----------- -------- ------- -------- •c1 number(2) •c2 date •c3 varchar2(5) y •c4 integer y •我们看到,将c1,c2列设为联合主键后,他们变为not null; •如果在建表时就指定了主键的话,主键列将会默认为not null。 •// •如果我们在添加一个primary key,那么我们将会得到一个错误: •alter table t add constraint t_pk_2 primary key(c3,c4) •ora-02260: table can have only one primary key •// •实例3:添加unique key •alter table t add constraint unique_key_t unique(c3,c4); •实例4:添加数据 •insert into t(c1,c2,c3,c4) •values(10,sysdate,'abc',3); •1 row inserted •// •insert into t(c1,c2,c3,c4) •values(11,sysdate,'abc',3); •ora-00001: unique constraint (scott.unique_key_t) violated •我们看到,添加的第二条数据违反了刚刚创建的唯一键约束; •将unique_key_t删除,添加就能成功了。 •实例5:删除unique key •alter table t drop constraint unique_key_t; •insert into t(c1,c2,c3,c4) •values(11,sysdate,'abc',3); •1 row inserted •// •实例6:删除primary key •alter table t drop constraint t_pk; •table altered •// •desc t; •name type nullable default comments •---- ----------- -------- ------- -------- •c1 number(2) y •c2 date y •c3 varchar2(5) y •c4 integer y •删除主键约束后,c1,c2列由恢复了原来的默认值null。 •// •3.其实primary key也是unique key,被primary key约束的列not null,并且不允许重复 •实例7: •truncate table t; •table truncated •// •alter table t add constraint t_pk primary key(c1,c2); •table altered •// •insert into t(c1,c2,c3,c4) •values(1,to_date('2011-01-01','yyyy-mm-dd'),'csdn',10); •1 row inserted •// •insert into t(c3,c4) •values('china',1); •ora-01400: cannot insert null into ("scott"."t"."c1") •// •insert into t(c1,c2,c3,c4) •values(1,to_date('2011-01-01','yyyy-mm-dd'),'csdn',10); •ora-00001: unique constraint (scott.t_pk) violated •这里,我们看到primary key t_pk变成了unique约束,证明了主键约束也是唯一约束。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
每期中一码
拥有自己的私人岛屿是怎样的体验
芡实红米糙米荞麦可以熬粥吗?
魅族魅蓝Note2怎么显示开发人员选项
汽车怎样在城市道路上合理的到头
大力女都奉顺月牙骨还演了谁
佛教修行里的“行般舟”是什么意思
邓州市南阳梦幻KTV地址有谁知道?有点事想过
我也在纠结是买技嘉B250M-DS3H还是技嘉Z270-G
陆龙兄弟老板是谁
尼龙塑料的耐电压值是多少?
梦见别人给我刮痧,
全民奇迹百度账号 我是首充号 自己怎么续冲,
半把剪刀的内容
谁在西安铁路局工作呢.请问下到底怎么样啊?
推荐资讯
3豪米厚不锈钢冷水板都有什么规格尺寸及价格
海尔 haier彩电D29FV6-A待机灯闪烁不开机求线
妈妈生日快乐泰语
保利的PPR水管好不好用?
房贷221100每月还2400多长时间还完
《政坛风云》txt全集下载
0十0=0打一成语
从高处摔下来,算盘珠有两个被压扁,一年了还
请结合文章,解释穷心一词的含义。
跳楼逼家长买电脑靠谱吗
我的芝麻信用分有640,资料填写真实完整,常
已知 2 + 2 =1,则?=______
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?