MySQL使列的组合独特

时间:2011-05-10 20:07:00

标签: mysql unique-index

我有一个表格,用于存储用户对网站上图片的评论。该表由四列组成,row_id是主键,image_id,user_id和注释。我想要做的是确保用户每张图片只能留一个评论。我只是在两列上创建一个唯一索引吗?

CREATE UNIQUE INDEX imgusr ON comments (image_id, user_id);

我们的想法是让以下查询起作用:

INSERT INTO comments SET image_id = '1', user_id = '2', comment = 'nice' ON DUPLICATE KEY UPDATE comment = 'nice';

gotchya(gotme?)是表是innoDB,因为它预计会变得非常大。这是一种可行的方法,尽管存在主键吗?

1 个答案:

答案 0 :(得分:13)

是的,这将完美无缺。

在另一个主题中,为什么你有一个row_id?您只需将主键设为(image_id, user_id),这也可以。