【发布时间】:2020-07-07 09:05:04
【问题描述】:
我想在两列上创建一个唯一索引,其中一列始终有一个值,而另一列的默认值通常为 0。
在以下示例中,用户 ID 22 喜欢了 2 个电视节目和 3 部电影。我想防止用户想要两次相同的电视节目或电影的情况。但是,我不能将用户 ID 和电影 ID 或用户 ID 和 tvshowid 设为唯一,因为在许多情况下,用户 ID 与 0 配对,而类似的电视节目。
Likes
id|userid|movieid|tvshowid
1|22|0|33
2|22|0|34
3|22|66|0
4|22|67|0
5|22|68|0
我可以将所有的 0 更改为 NULL,但 NULL 往往会在客户端上产生问题。
当一列有多个空值时,在两列上创建唯一索引的最佳方法是什么?
如果需要将所有的 0 更改为 NULL,是否有有效的 MYSQL 语句来执行此操作?
【问题讨论】:
标签: mysql indexing null unique