Indsæt i en MySQL-tabel eller opdater hvis den findes

Jeg vil tilføje en række til en database tabel, men hvis der findes en række med den samme unikke nøgle, vil jeg opdatere rækken.

For eksempel,

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

Lad os sige, at den unikke nøgle er id, og at der i min database er en række med id = 1. I så fald vil jeg opdatere denne række med disse værdier. Normalt giver dette en fejl. Hvis jeg bruger insert IGNORE vil den ignorere fejlen, men den vil stadig ikke opdatere.

Løsning

Brug 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)

Tjek 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åber det hjælper.

Kommentarer (6)