经过多次研究,我没有找到如何处理HSQLDB的空列的唯一约束。
这个问题直接与:Create unique constraint with null columns有关。
相关答案(解决方法)与PostgreSQL(create unique index ... where conditions
)配合使用,但不适用于HSQLDB(从我的角度来看)。
理想情况下,我想为PostgreSQL和HSQLDB使用相同的“create_ddl”脚本来管理使用空列的唯一约束行为
任何帮助,想法或解决方法将不胜感激。
HSQLDB的设置只允许一行在UNIQUE约束的一列中具有空值。您可以使用此语句更改一次默认设置。
SET DATABASE SQL UNIQUE NULLS FALSE
您只需在三列上创建UNIQUE约束。 null被视为一个不同的值,它不允许两行在三列中具有相同的值,即使其中一行为null。