我的SQL架构是
CREATE TABLE Foo (
`bar` INT NULL ,
`name` VARCHAR (59) NOT NULL ,
UNIQUE ( `name`, `bar` )
) ENGINE = INNODB;
Run Code Online (Sandbox Code Playgroud)
MySQL允许重复以下语句,导致重复.
INSERT INTO Foo (`bar`, `name`) VALUES (NULL, 'abc');
Run Code Online (Sandbox Code Playgroud)
尽管有
UNIQUE ( `name`, `bar` )
Run Code Online (Sandbox Code Playgroud)
为什么容忍这种情况,如何阻止它?
Emi*_*dın 13
警告:这个答案已经过时了.从MySQL 5.1开始,不支持BDB.
这取决于MySQL Engine Type.BDB多个不允许NULL使用值,UNIQUE但MyISAM并InnoDB允许多个NULLS甚至用UNIQUE.