두 열 (a 및 b)의 조합이 이미 존재하지 않는 경우에만 INSERT를 수행하려고합니다. 그렇지 않으면 UPDATE를하고 싶습니다. 다음 코드는 항상 원하는대로 업데이트하는 대신 새 행을 INSERT하는 것입니다. 내가 생각하는 이유는 내가 관리하지 않기 때문에 내 테이블의 설정에서 일종의 고유 한 열이있는 것입니다. 해결책이있는 사람이 있습니까? 구글은 .. 내 친구 오늘하지 않는 것'insert into ... into duplicate key'에 자동 증가
표 :
id : int, primary, AI a b c and d : int
코드 :
$req = $connexion -> prepare("
INSERT INTO position (a,b,c,d)
VALUES (:a,:b,:c,:d)
ON DUPLICATE KEY UPDATE
c=:c;");
$position->bindParam(':a', $a);
$position->bindParam(':b', $b);
$position->bindParam(':c', $c);
$position->bindParam(':d', $d);
$a = $val_a;
$b = $val_b;
$c = $val_c;
$d = $val_d;
$req -> execute();
이들의 A B C d 개의 아무도 데이터베이스 테이블의 열없는 고유 인덱스를 가질를 사용하여
UNIQUE KEY
를 추가 할 수 있습니다. ID는 기본 키이므로 중복 ID로 작동합니다. 이 열 중 하나에 UNIQUE INDEX를 추가하여 작동 시키십시오. – Ananth고유 키 추가 - 'ALTER TABLE 위치 추가 고유 키 (a, b)' – Sean
@Sean 답변으로 게시하십시오. – Barmar