MySQL使列的组合独特

Wig*_*ige 22 mysql unique-index

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

CREATE UNIQUE INDEX imgusr ON comments (image_id, user_id);
Run Code Online (Sandbox Code Playgroud)

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

INSERT INTO comments SET image_id = '1', user_id = '2', comment = 'nice' ON DUPLICATE KEY UPDATE comment = 'nice';
Run Code Online (Sandbox Code Playgroud)

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

krt*_*tek 13

是的,这将完美地运作.

在另一个话题中,你为什么有一个row_id?您可以简单地将主键设置为(image_id, user_id),这也可以.