Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 未强制执行唯一约束检查_Mysql_H2 - Fatal编程技术网

Mysql 未强制执行唯一约束检查

Mysql 未强制执行唯一约束检查,mysql,h2,Mysql,H2,我对字段1、字段2、字段3有一个唯一约束,以下记录存储在表中 e、 g 我希望这会抛出一个唯一的约束冲突,因为所有记录都有冲突,但事实并非如此。我在这里遗漏了什么,我检查了数据库,并创建了唯一约束索引。Null值永远不等于任何其他值,甚至也不等于Null空!=空 这就是为什么记录a+null+b永远不会重复记录a+null+b您能为我们发布显示创建表a吗?您在那里使用的语句没有指示数据类型。假设它们都是字符串字段,那么我要避免强制执行此约束吗,假设field2仅在某些情况下包含值,其余时间它将为

我对字段1、字段2、字段3有一个
唯一约束,以下记录存储在表中

e、 g


我希望这会抛出一个唯一的约束冲突,因为所有记录都有冲突,但事实并非如此。我在这里遗漏了什么,我检查了数据库,并创建了唯一约束索引。

Null
值永远不等于任何其他值,甚至也不等于
Null
<代码>空!=空


这就是为什么记录
a+null+b
永远不会重复记录
a+null+b

您能为我们发布
显示创建表a
吗?您在那里使用的语句没有指示数据类型。假设它们都是字符串字段,那么我要避免强制执行此约束吗,假设field2仅在某些情况下包含值,其余时间它将为空值。您是否可以设置
非空默认值“”
?@Jason:我不知道在mysql中有什么可能的方法。@Jason:您可以试试这个。足够简单的解决方案。这是一个肮脏的黑客,但它的工作;-)我的应用程序需要在开发/测试模式下针对多个数据库运行,因此无法进行特定于数据库的修改。它们必须符合JPA模型
create table A (id, field1, field2, field3, field4)
insert into A (1, "f1", null, "f3", "f4");
insert into A (2, "f1", null, "f3", "f4");
insert into A (3, "f1", null, "f3", "f4");