>데이터 베이스 >MySQL 튜토리얼 >MySQL의 ON DUPLICATE KEY UPDATE를 사용하여 INSERT 중에 기존 행을 업데이트하는 방법은 무엇입니까?

MySQL의 ON DUPLICATE KEY UPDATE를 사용하여 INSERT 중에 기존 행을 업데이트하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-30 02:30:13593검색

How to Update Existing Rows During an INSERT Using MySQL's ON DUPLICATE KEY UPDATE?

"INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE" 사용

MySQL로 삽입 작업을 수행할 때 고유 키 충돌이 발생하면 기존 행을 업데이트할 수 있습니다. 이는 "INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE" 구문을 사용하여 수행할 수 있습니다.

주어진 쿼리에서는 임시 테이블('tmp')의 행을 삽입하기 위한 것입니다. 'lee' 테이블에 넣습니다. 동일한 고유 키(이 경우 "id")를 가진 행이 'lee'에 이미 있는 경우 쿼리는 특정 열을 'tmp' 테이블의 값으로 업데이트해야 합니다.

UPDATE 구문

ON DUPLICATE KEY UPDATE column1=SELECT_column1, column2=SELECT_column2, ...

여기서 "column1"은 'lee' 테이블의 컬럼을 의미하고, "SELECT_column1"은 해당 컬럼을 의미합니다. SELECT 절에서. 이러한 쌍을 지정함으로써 MySQL은 SELECT의 새 값으로 업데이트할 열을 결정합니다.

제공된 쿼리의 경우 UPDATE 절은 다음과 같습니다.

ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, inadur=t.inadur, inadist=t.inadist, smlct=t.smlct, smldur=t.smldur, smldist=t.smldist, larct=t.larct, lardur=t.lardur, lardist=t.lardist, emptyct=t.emptydur, emptydur=t.emptydur

이렇게 하면 "entct", "inact", "inadur" 등의 열은 중복 키가 발견되면 임시 테이블의 해당 열 값으로 업데이트됩니다.

위 내용은 MySQL의 ON DUPLICATE KEY UPDATE를 사용하여 INSERT 중에 기존 행을 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.