Ich versuche, Namen für die Autoren einzigartig zu machen. Aber wenn ich versuche,MySQL Unique Key für mehr Spalten funktioniert nicht
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);
Beispiel 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
Wenn ich geben alle drei Namensteile, es funktioniert gut.
Beispiel 2:
insert into author(firstname,middlename,lastname) values('Alice','Bob','Charlie');
insert into author(firstname,middlename,lastname) values('Alice','Bob','Charlie');
>> Error...Duplicate
Warum Namen mit null wird nicht in Betracht gezogen?
Wie wird es sogar für Beispiel 1 einzigartig gemacht?