guoyanxi 发表于 2013-1-13 18:32:30

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

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

对后者实验:
$ db2 "create table nnull(aaa varchar(7))"      --建表 DB20000IThe SQL command completed successfully.$ $ db2 "create unique index x on nnull(aaa)"      --建索引DB20000IThe SQL command completed successfully.$ $ db2 "insert into nnull values('')"       --insert空值DB20000IThe SQL command completed successfully.$ db2 "commit"DB20000IThe SQL command completed successfully.$ db2 "insert into nnull values('')"      --再insert空值就失败了DB21034EThe command was processed as an SQL statement because it was not a valid Command Line Processor command.During SQL processing it returned:SQL0803NOne 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
页: [1]
查看完整版本: 主键和唯一键约束与唯一索引的区别