프로그램을 짜다보면 새로운 정보일 경우 데이터를
저런 경우 코딩을 다음과 같이
있으면
ex)
출저 : http://blog.naver.com/hanjshanjs?Redirect=Log&logNo=110161037477
INSERT
하고, 이미 기존에 데이터가 저장되있는 정보일 경우 UPDATE
를 하는 코딩을 짜는 경우가 많다. 저런 경우 코딩을 다음과 같이
IF
문을 사용해 데이터가 없으면 INSERT
문을 실행하고있으면
UPDATE
문을 실행하도록 짰었다.$data = "SELECT ~~~~"; // 우선 SELECT문으로 데이터가 있는지 검사
if(empty($data)){ //데이터가 비여있으면
$sql = "INSERT ~~~~";
}else{
$sql = "UPDATE ~~~~";
}
하지만 INSERT
문에 ON DUPLICATE KEY UPDATE
를 추가하면 UNIQUE
인덱스 또는 PRIMARY KEY
제약 조건이 설정된 컬럼에 중복된 값이 삽입되는 상황에서 에러를 출력하지 않고 새로운 값으로 갱신할 수 있다.ON DUPLICATE KEY UPDATE
절은 INSERT
또는 UPDATE
에 대한 트리거가 활성화된 테이블에 대해서는 사용할 수 없으며, 중첩된 INSERT
문에서도 사용할 수 없다.ex)
INSERT INTO a_tbl3 VALUES(2, 'bbb', '222-2222')
ON DUPLICATE KEY UPDATE phone = '222-2222';
출저 : http://blog.naver.com/hanjshanjs?Redirect=Log&logNo=110161037477