이 쿼리는 tmp에서 lee 테이블에 데이터를 삽입합니다. 테이블에서 고유 키 충돌이 발생하면 기존 행을 업데이트합니다. 그러나 ON DUPLICATE KEY UPDATE 절의 구문은 명확하지 않습니다.
MySQL은 ON DUPLICATE KEY UPDATE 이후 방정식의 왼쪽이 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, ...
이 쿼리에서 ON DUPLICATE KEY UPDATE 절의 왼쪽은 INSERT INTO 절에 명명된 열과 일치합니다. 등호 앞의 열은 leo 테이블의 열을 나타내고, 등호 뒤의 열은 SELECT 절에서 업데이트할 값을 나타냅니다.
위 내용은 `INSERT INTO ... SELECT ...`를 사용하여 MySQL의 `ON DUPLICATE KEY UPDATE` 절에서 열을 올바르게 지정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!