【发布时间】:2016-04-27 09:30:20
【问题描述】:
我正在尝试使名称对作者来说是独一无二的。但如果我尝试,
create table author(author_id int auto_increment primary key, firstname varchar(20), middlename varchar(20), lastname varchar(20)) auto_increment = 1001;
alter table author add unique(firstname, middlename, lastname);
示例 1:
insert into author(firstname, middlename, lastname) values('Alice',null,null);
insert into author(firstname, middlename, lastname) values('Alice',null,null);
select * from author;
1001 | Alice | NULL | NULL
1002 | Alice | NULL | NULL
如果我给出所有三个名称部分,它就可以正常工作。
示例 2:
insert into author(firstname,middlename,lastname) values('Alice','Bob','Charlie');
insert into author(firstname,middlename,lastname) values('Alice','Bob','Charlie');
>> Error...Duplicate
为什么不考虑带有 null 的名称?
即使对于示例 1,如何使其独一无二?
【问题讨论】:
标签: mysql null unique multiple-columns