Sett inn i en MySQL-tabell eller oppdater hvis den finnes.

Jeg vil legge til en rad i en databasetabell, men hvis det finnes en rad med samme unike nøkkel, vil jeg oppdatere raden.

For eksempel

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

La oss si at den unike nøkkelen er id, og i databasen min er det en rad med id = 1. I så fall vil jeg oppdatere den raden med disse verdiene. Normalt gir dette en feil. Hvis jeg bruker insert IGNORE vil den ignorere feilen, men den vil fortsatt ikke oppdatere.

Løsning

Bruk INSERT ... ON DUPLICATE KEY UPDATE.

QUERY:

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

Sjekk ut REPLACE

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

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

Prøv dette:

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

Håper dette hjelper.

Kommentarer (6)