【发布时间】:2013-01-19 10:40:27
【问题描述】:
我需要创建一个基于四列的表的限制,其中两个是互斥的,我的意思是,如果一个是NULL,另一个不是。
理想的脚本是这样的:
ALTER TABLE ONLY t_users_prizes
ADD CONSTRAINT t_user_prize_test_circuit_key
UNIQUE (id_event||':'||id_circuit, id_prize, id_user);
但 Postgres 不允许这种连接。
如何实施此限制?
【问题讨论】:
-
你会允许
(1, NULL, 3, 4)和(NULL, 1, 3, 4)共存吗? -
据我了解,与@Erwin 和 Catcall 答案中暗示的相反,两个互斥列都不能为空。正确的解释是什么?
-
我们的两个答案都不允许一对 NULL。
标签: sql postgresql null indexing unique-index