我在 postgresql 中有一个多列唯一索引。有时这些列值之一将为 NULL,我希望唯一索引将 NULL 视为另一个值。因此不允许这两行:
1,2,NULL
1,2,NULL
在 psql 做简单的实验,这正是我看到的行为。
但是我有一个压力测试,我使用 20 个线程进行 20 个并发插入。在这里,Postgres 允许插入相同的行。
发生这种情况有什么原因吗?也许我的 psql 实验和我的测试实验之间还有另一个区别。
我在 postgresql 中有一个多列唯一索引。有时这些列值之一将为 NULL,我希望唯一索引将 NULL 视为另一个值。因此不允许这两行:
1,2,NULL
1,2,NULL
在 psql 做简单的实验,这正是我看到的行为。
但是我有一个压力测试,我使用 20 个线程进行 20 个并发插入。在这里,Postgres 允许插入相同的行。
发生这种情况有什么原因吗?也许我的 psql 实验和我的测试实验之间还有另一个区别。