2012-01-18 2 views
0

다음과 같은 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)를 먼저 보면서 중복 키 업데이트를 사용하여 중복 항목을 방지 할 수 있습니까?

내 DB에있는 항목은 다음과 같습니다

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

은 (예를 들어, 1, 5, 7)의 두 번째 삽입을 방지 할 수 있습니까?

답변

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

이렇게하면이 열에 동일한 값을 두 번 삽입하지 못하게됩니다.

0

세 개의 열을 모두 포함하는 UNIQUE 색인을 만들어야합니다. 그러면 ON DUPLCATE KEY UPDATE 절이 트리거됩니다.

관련 문제