Heim > Datenbank > MySQL-Tutorial > Wie führe ich Massenaktualisierungen in MySQL mit INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE durch?

Wie führe ich Massenaktualisierungen in MySQL mit INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE durch?

DDD
Freigeben: 2024-12-13 00:56:17
Original
292 Leute haben es durchsucht

How to Perform Bulk Updates in MySQL Using INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE?

Durchführen von Massenaktualisierungen mit INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE

Beim Versuch, neue Daten in ein einzufügen In der Tabelle kann es Fälle geben, in denen vorhandene Datensätze mit identischen eindeutigen Schlüsseln mit den neuesten Werten aktualisiert werden müssen. MySQL bietet eine praktische Syntax für solche Szenarien mit der Anweisung INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE.

In Ihrem Fall müssen Sie alle Spalten außer exp_id,created_by, location, animal aktualisieren , Startzeit und Endzeit. Die Syntax für diese Aktualisierungsklausel lautet:

ON DUPLICATE KEY UPDATE <column_name>=<select_column_name>, ...
Nach dem Login kopieren

Hier bezieht sich auf die Spalten in der INSERT INTO-Klausel, während bezieht sich auf die entsprechenden Spalten in der SELECT-Klausel.

Basierend auf Ihrer Abfrage würde die vollständige Anweisung so aussehen:

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;
Nach dem Login kopieren

Mit dieser Anweisung fügt MySQL die Daten von tmp in ein lee, und wenn ein doppelter Schlüssel gefunden wird, werden die angegebenen Spalten mit den Werten aus der SELECT-Anweisung aktualisiert.

Das obige ist der detaillierte Inhalt vonWie führe ich Massenaktualisierungen in MySQL mit INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage