INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE를 사용하여 대량 업데이트 수행
새 데이터를 테이블에서 동일한 고유 키를 가진 기존 레코드를 최신 값으로 업데이트해야 하는 경우가 있을 수 있습니다. MySQL은 INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE 문을 사용하여 이러한 시나리오에 편리한 구문을 제공합니다.
귀하의 경우 exp_id, Created_by, location, Animal을 제외한 모든 열을 업데이트해야 합니다. , 시작 시간 및 종료 시간입니다. 이 업데이트 절의 구문은 다음과 같습니다.
ON DUPLICATE KEY UPDATE <column_name>=<select_column_name>, ...
여기서
쿼리를 기준으로 하면 전체 문은 다음과 같습니다.
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, 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.emptyct, emptydur=t.emptydur;
이 문을 사용하면 MySQL은 tmp의 데이터를 lee, 중복 키가 발견되면 SELECT 문의 값으로 지정된 열을 업데이트합니다.
위 내용은 INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE를 사용하여 MySQL에서 대량 업데이트를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!