집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 'INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE'를 사용하여 새 레코드를 삽입하는 동안 기존 레코드를 효율적으로 업데이트하려면 어떻게 해야 합니까?
특정 열이 이미 있을 수 있는 테이블에 데이터를 삽입하는 경우 존재하는 경우 해당 열을 새 값으로 업데이트할 수 있습니다. MySQL은 "ON DUPLICATE KEY UPDATE" 절을 사용하여 이러한 시나리오에 편리한 구문을 제공합니다.
쿼리에는 "INSERT INTO" 문 뒤에 "SELECT" 문이 있습니다. 목표는 "lee" 테이블에 새 행을 삽입하고 고유 키와 일치하는 기존 행을 업데이트하는 것입니다. 이렇게 하려면 "ON DUPLICATE KEY UPDATE" 절에서 업데이트할 열을 지정해야 합니다.
MySQL은 등호(=) 앞의 부분을 "INSERT INTO"에 명명된 열을 참조하는 것으로 해석합니다. "절. 등호 뒤의 부분은 "SELECT" 절의 열을 나타냅니다.
예:
INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct, inact, inadur, inadist, smlct, smldur, smldist, larct, lardur, lardist, emptyct, emptydur) SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, t.inact, t.inadur, t.inadist, t.smlct, t.smldur, t.smldist, t.larct, t.lardur, t.lardist, t.emptyct, t.emptydur FROM tmp t WHERE uid=x ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, ...
이 쿼리에서 "INSERT INTO" 절의 열은 다음과 같습니다. 업데이트되지 않은 항목은 "exp_id", "created_by", "location", "animal", "starttime" 및 "endtime"입니다. "entct", "inact", "inadur", "inadist" 등과 같은 다른 모든 열은 "SELECT" 절의 값으로 업데이트됩니다.
올바른 구문을 사용하면 다음을 수행할 수 있습니다. 단일 쿼리로 삽입과 업데이트를 수행하여 데이터를 효율적으로 최신 상태로 유지하세요.
위 내용은 MySQL의 'INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE'를 사용하여 새 레코드를 삽입하는 동안 기존 레코드를 효율적으로 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!