SQL: INSERT INTO tabelle ON DUPLICATE KEY UPDATE

edit | delete

Autor: Varsamis Karamanidis (Macky), Ralf v.d.Mark

eingetragen: Montag, 03. Mai 2021 um 15:51 Uhr (18/2021 Kalenderwoche)

geändert: Montag, 03. Mai 2021 um 16:03 Uhr (18/2021 Kalenderwoche)

Keywords: INSERT INTO tabelle DUPLICATE UPDATE

Kategorien: DB: MySQL, DB: MariaDB,

Text:

INSERT INTO tabelle ON DUPLICATE KEY UPDATE


Wichtig ist, das es einen Unique-Constaint oder einen Primay-Key auf die Felder gibt.


siehe auch PHP-Abfrage der Ergebnisse (Artikel 264)

Quellcode:  

INSERT INTO fpd.f_foprojekt_ministeriumsreferat_verkn
    (foprojekt_id, ministerium_referate_id, update_ts)
    SELECT ext.pa_id, ext.rm_ministerium_referate_id, ext.pk_update_timestamp
    FROM fpd.a_daten4import AS ext
    INNER JOIN fpd.viewipa_ministerium_referate ref ON (ref.id = ext.rm_ministerium_referate_id)
    INNER JOIN fpd.f_foprojekt prjkt ON (prjkt.id = ext.pa_id)
    WHERE     (ext.it_datensatz_fertig = 55
            OR ext.it_datensatz_fertig = 66)
    ON DUPLICATE KEY UPDATE
         foprojekt_id = ext.pa_id,
         ministerium_referate_id = ext.rm_ministerium_referate_id,
         update_ts = ext.qt_update_zeitpunkt
    ;';