停止MySQL在UNIQUE约束中允许多个NULL [英] Stop MySQL tolerating multiple NULLs in a UNIQUE constraint
本文介绍了停止MySQL在UNIQUE约束中允许多个NULL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的SQL模式是
CREATE TABLE Foo (
`bar` INT NULL ,
`name` VARCHAR (59) NOT NULL ,
UNIQUE ( `name`, `bar` )
) ENGINE = INNODB;
MySQL允许重复以下语句,从而导致重复.
MySQL is allowing the following statement to be repeated, resulting in duplicates.
INSERT INTO Foo (`bar`, `name`) VALUES (NULL, 'abc');
尽管有
UNIQUE ( `name`, `bar` )
为什么可以忍受?如何停止?
Why is this tolerated and how do I stop it?
推荐答案
警告:此答案已过时.从MySQL 5.1开始,不支持BDB.
取决于MySQL Engine Type
. BDB
不允许使用UNIQUE
的多个NULL
值,但是MyISAM
和InnoDB
允许使用UNIQUE
的多个NULL
.
It depends on MySQL Engine Type
. BDB
doesn't allow multiple NULL
values using UNIQUE
but MyISAM
and InnoDB
allows multiple NULL
s even with UNIQUE
.
这篇关于停止MySQL在UNIQUE约束中允许多个NULL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文