主键和唯一键约束与唯一索引的区别

唯一的区别就是:
前者:不允许有空值
后者:可以有一个空值

对后者实验:

[db2inst@rhel5 ~]$ db2 "create table nnull(aaa varchar(7))" --建表
DB20000I The SQL command completed successfully.
[db2inst@rhel5 ~]$
[db2inst@rhel5 ~]$ db2 "create unique index x on nnull(aaa)" --建索引
DB20000I The SQL command completed successfully.
[db2inst@rhel5 ~]$
[db2inst@rhel5 ~]$ db2 "insert into nnull values('')" --insert空值
DB20000I The SQL command completed successfully.
[db2inst@rhel5 ~]$ db2 "commit"
DB20000I The SQL command completed successfully.
[db2inst@rhel5 ~]$ db2 "insert into nnull values('')" --再insert空值就失败了
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0803N One or more values in the INSERT statement, UPDATE statement, or
foreign key update caused by a DELETE statement are not valid because the
primary key, unique constraint or unique index identified by "1" constrains
table "DB2INST.NNULL" from having duplicate values for the index key.
SQLSTATE=23505
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值