【发布时间】:2017-12-28 19:38:00
【问题描述】:
我有一张带有奖品代码的桌子
codes
code, user_id, prize_id
我有一个关于 user_id,prize_id 的唯一索引
所有代码都已在表中,当用户兑换代码时,会分配一个 user_id = NULL 的随机代码。
不幸的是,这不起作用,因为唯一索引不允许我在不指定 user_id 的情况下多次添加相同的 Prize_id。
有没有办法告诉唯一索引NULL不应该被认为是重复的?
初始状态:
code, user_id, prize_id
A, NULL, 1
B, NULL, 1
C, NULL, 1
D, NULL, 2
E, NULL, 2
用户 1 兑换奖品 2 的代码后:
code, user_id, prize_id
A, NULL, 1
B, NULL, 1
C, NULL, 1
D, 1, 2
E, NULL, 2
【问题讨论】:
-
NULL 不是一个值,它是没有一个值。或许可以默认设置一个名为“No Prize”的ID。
-
@JacobH 那我还是有这个会和唯一索引冲突的问题
-
删除 user_id 上的唯一索引,如果它在您的数据模型中是可为空的列
标签: sql sql-server unique-index