MySQL INSERT und UPDATE mit einem Befehl

Kommentieren Mar 06 2007

 

Sollte man mal den Fall haben Daten in eine Tabelle zu speichern und voher zu unterscheiden ob diese Daten schon vorhanden sind und aktualisiert werden müssen oder neu sind.

Dies lässt sich zeit MySQL 4.1 in einem Befehl machen

INSERT INTO access ('news','text','date') 

VALUES ('news tasda', 'tex ad asd t', '01.01.1900')

ON DUPLICATE KEY UPDATE news = 'neuerInhalt', 

text = 'neuer Text', 

Datum = 'neues Datum' ;



In diesem Beispiel sollte die Spalte news der Primär Schlüssel sein.
Mit einer vortlaufenden ID als Primärschlüssel geht das nicht.
Es muss ein eindeutger Wert sein, denn ansonsten funktioniert ON DUPLICATE KEY nicht.

MYSQL HandbuchReferenz