使用INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE 執行批次更新
嘗試將新資料插入表中更新
嘗試將新資料插入表中,可能存在具有相同唯一鍵的現有記錄需要使用最新值進行更新的情況。 MySQL 使用 INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE 語句為此類場景提供了方便的語法。ON DUPLICATE KEY UPDATE <column_name>=<select_column_name>, ...
在您的情況下,您需要更新 exp_id、created_by、location、animal 之外的所有欄位、開始時間和結束時間。此更新子句的語法為:
這裡,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中文網其他相關文章!