我有一个包含不同电影,演员,导演的数据库。
要将导演与电影联系起来我使用的表格中包含以下内容:
film_id 和 director_id - 所以当我为电影添加导演时,必要的ID会被插入到此表中。
所以我已经有一堆id已经存在并且工作得很好。例如:
movie_id - director_id
10 15
11 17
9 13
现在当我添加另一个导演让我们对 id 13 的电影说 id 9 时,我有两行完全相同这就是我不想发生的事情。如下所示:
movie_id - director_id
10 15
11 17
9 13
9 13
相反,当已经有一行具有相同 film_id 的行 director_id 时,它不应该插入。
如何防止这种情况发生?
答案 0 :(得分:2)
只需从movie_id
和director_id
列创建唯一键即可。
SQL示例:
ALTER TABLE `table_name` ADD UNIQUE `index_name` (`movie_id`, `director_id`);
然后为IGNORE
查询添加INSERT
,它将阻止Duplicate entry...
错误消息。
SQL示例:
INSERT IGNORE INTO `table_name` (...) VALUES (...)
如果要在条目已存在的情况下更新某些数据,则可以使用ON DUPLICATE KEY UPDATE。
SQL示例:
INSERT INTO `table_name` (...) VALUES (...) ON DUPLICATE KEY UPDATE `column` = [new_value]