我可以在多个字段中使用ON DUPLICATE KEY UPDATE吗?

时间:2012-01-18 15:07:14

标签: mysql

我有一个看起来像这样的SQL插入语句?

$SQL = "INSERT INTO profile_answers (user_id, profile_id, question_id, question_answer, timestamp) VALUES ($user_id, $profile_id, {$i}, $answer, NOW())";

这被调用三次,每次都改变问题ID,但user_id和profile_id是相同的。是否可以通过首先查看前两个字段(user_id,profile_id)来使用'ON DUPLICATE KEY UPDATE来防止重复输入?

我的数据库中的条目如下所示:

user_id profile_id  question_id
5           7                 1
5           7                 2
5           7                 3

是否可以防止第二次插入(5,7,1)?

2 个答案:

答案 0 :(得分:1)

alter table profile_answers add unique index(user_id, profile_id, question_id);

这将阻止为这些列插入两次相同的值。

答案 1 :(得分:0)

您需要创建涵盖所有三列的UNIQUE索引。这将触发ON DUPLCATE KEY UPDATE子句。