고유 조건에 따른 MySql 삽입 또는 업데이트
MySql 테이블에 데이터를 삽입하려면 업데이트를 수행하기 전에 데이터가 이미 존재하는지 확인해야 하는 경우가 많습니다. . 그러나 기본 키가 아닌 고유한 열을 처리할 때 기존 UPDATE 문은 부족합니다.
이 경우 사용자는 datenum 열이 없으면 AggregatedData 테이블에 데이터를 삽입하는 효율적인 방법을 찾습니다. , 또는 존재하는 경우 기존 행을 업데이트합니다.
해결책: INSERT ... ON DUPLICATE KEY UPDATE
Jai가 제안한 대로 가장 적합한 솔루션은 INSERT ... ON DUPLICATE KEY UPDATE 구문을 활용하는 것입니다.
INSERT INTO AggregatedData (datenum,Timestamp) VALUES ("734152.979166667","2010-01-14 23:30:00.000") ON DUPLICATE KEY UPDATE Timestamp=VALUES(Timestamp)
이 문은 datenum이 다음과 같은 경우 삽입을 수행합니다. 찾을 수 없습니다. 존재하는 경우 VALUES() 함수에 제공된 값으로 Timestamp 열을 업데이트합니다.
설명
VALUES() 함수는 업데이트에 사용되는 값이 INSERT 문에 지정된 값과 동일한지 확인합니다. 이렇게 하면 실수로 열 값이 업데이트되는 것을 방지할 수 있습니다.
INSERT ... ON DUPLICATE KEY UPDATE의 장점
위 내용은 MySQL 삽입 또는 업데이트: 기본이 아닌 고유 키 열을 효율적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!