2012-01-18 92 views
0

我有一個SQL插入語句,看起來像這樣?我可以在多個字段上使用ON DUPLICATE KEY UPDATE嗎?

$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)的例子嗎?

回答

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

這會阻止爲這些列插入兩次相同的值。

0

您需要創建一個涵蓋所有三列的UNIQUE索引。這將觸發ON DUPLCATE KEY UPDATE條款。

相關問題