Invoegen in een MySQL tabel of bijwerken indien bestaat

Ik wil een rij toevoegen aan een database tabel, maar als er al een rij bestaat met dezelfde unieke sleutel, wil ik de rij bijwerken.

Bijvoorbeeld,

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

Laten we zeggen dat de unieke sleutel id is, en in mijn database is er een rij met id = 1. In dat geval wil ik die rij updaten met deze waarden. Normaal gesproken geeft dit een foutmelding. Als ik insert IGNORE gebruik, zal het de fout negeren, maar het zal nog steeds niet updaten.

Oplossing

Gebruik INSERT ... ON DUPLICATE KEY UPDATE

QUERY:

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

Kijk eens naar REPLACE

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

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

Probeer dit eens:

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

Ik hoop dat dit helpt.

Commentaren (6)