我有一个看起来像这样的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)?
答案 0 :(得分:1)
alter table profile_answers add unique index(user_id, profile_id, question_id);
这将阻止为这些列插入两次相同的值。
答案 1 :(得分:0)
您需要创建涵盖所有三列的UNIQUE
索引。这将触发ON DUPLCATE KEY UPDATE
子句。