我的SQL模式是
CREATE TABLE Foo ( `bar` INT NULL , `name` VARCHAR (59) NOT NULL , UNIQUE ( `name`, `bar` ) ) ENGINE = INNODB;
MySQL允许重复以下语句,从而导致重复。
INSERT INTO Foo (`bar`, `name`) VALUES (NULL, 'abc');
尽管有
UNIQUE ( `name`, `bar` )
为什么可以忍受,我如何制止它?
警告:此答案已过时。 从MySQL 5.1开始,不支持BDB。
这取决于MySQL EngineType。BDB不允许NULL使用多个值,UNIQUE但即使使用MyISAM也InnoDB允许多个。NULL``UNIQUE
MySQL EngineType
BDB
NULL
UNIQUE
MyISAM
InnoDB
NULL``UNIQUE