Einfügen in eine MySQL-Tabelle oder Aktualisieren, falls vorhanden

Ich möchte eine Zeile zu einer Datenbanktabelle hinzufügen, aber wenn eine Zeile mit demselben eindeutigen Schlüssel vorhanden ist, möchte ich die Zeile aktualisieren.

Zum Beispiel,

insert into table (id, name, age) values(1, "A", 19)

Angenommen, der eindeutige Schlüssel ist id, und in meiner Datenbank gibt es eine Zeile mit id = 1. In diesem Fall möchte ich diese Zeile mit diesen Werten aktualisieren. Normalerweise gibt dies einen Fehler. Wenn ich insert IGNORE verwende, wird der Fehler ignoriert, aber es wird trotzdem nicht aktualisiert.

Lösung

Verwenden Sie INSERT ... ON DUPLICATE KEY UPDATE

ABFRAGE:

INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE    
name="A", age=19
Kommentare (23)

Prüfen Sie REPLACE

http://dev.mysql.com/doc/refman/5.0/en/replace.html

REPLACE into table (id, name, age) values(1, "A", 19)
Kommentare (7)

Probieren Sie es aus:

INSERT INTO table (id, name, age) VALUES (1, 'A', 19) ON DUPLICATE KEY UPDATE id = id + 1;

Hoffentlich hilft das.

Kommentare (6)