多重attr唯一约束可防止因“重复”错误而导致行插入

时间:2013-12-01 06:26:33

标签: mysql sql database-schema unique-constraint

这就是我的表格:

   id   user_id event_id    
    4   0       10 
    3   1       8 
    1   2       8 
    2   3       8 
    5   4       10 
    6   5       5 

我在(user_id,event_id)组合上应用了唯一约束(可以邀请多个用户参加多个活动,但不能邀请用户两次同一活动):

ALTER TABLE `Event_Invited` ADD Unique(`event_id`, `user_id`)

我正在尝试插入值为event_id = 8且user_id = 4的新记录/行 哪个应该没问题,但我收到了错误:

"Duplicate entry '4' for key 'user_id_3'  

为什么呢? 起初我以为我不小心专门为users_id列设置了一个UNIQUE约束,但即使我确定已删除它,我仍然会收到这些错误。

编辑:好像我收到了这个错误,因为我有一些约束,不允许我拥有相同user_id值的记录。我上面指定的约束是否使每列中的值唯一,而不是使它们的组合唯一?

1 个答案:

答案 0 :(得分:0)

ALTER TABLE `Event_Invited` ADD Unique index(`event_id`, `user_id`)

查看13.1.8. CREATE INDEX Syntax了解更多