1167 Stimmen

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_name (ID, NAME, AGE) VALUES(1, "A", 19);

Nehmen wir an, der eindeutige Schlüssel lautet ID und in meinem Datenbank gibt es eine Zeile mit ID = 1 . In diesem Fall möchte ich diese Zeile mit diesen Werten aktualisieren. Normalerweise führt dies zu einem Fehler.
Wenn ich die INSERT IGNORE wird der Fehler ignoriert, aber es wird trotzdem nicht aktualisiert.

2092voto

Donnie Punkte 43338

Utilice INSERT ... ON DUPLICATE KEY UPDATE

ANFRAGE:

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

336voto

Martin Schapendonk Punkte 12024

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)

77voto

Fabiano Souza Punkte 870

Verwenden Sie beim Einfügen von Stapeln die folgende Syntax:

INSERT INTO TABLE (id, name, age) VALUES (1, "A", 19), (2, "B", 17), (3, "C", 22)
ON DUPLICATE KEY UPDATE
    name = VALUES (name),
    ...

51voto

Dilraj Singh Punkte 803

Jede dieser Lösungen ist für Ihre Frage geeignet:

INSERT IGNORE INTO table (id, name, age) VALUES (1, "A", 19);

ou

INSERT INTO TABLE (id, name, age) VALUES(1, "A", 19) 
    ON DUPLICATE KEY UPDATE NAME = "A", AGE = 19;  

ou

REPLACE INTO table (id, name, age) VALUES(1, "A", 19);

26voto

Rasel Punkte 5052

Versuchen Sie dies:

INSERT INTO table (id,name,age) VALUES('1','Mohammad','21') ON DUPLICATE KEY UPDATE name='Mohammad',age='21'

Note :
Wenn id der Primärschlüssel ist, wird nach dem ersten Einfügen mit id='1' jedes Mal, wenn Sie versuchen, ein id='1' werden Name und Alter aktualisiert und das Alter des vorherigen Namens wird geändert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X