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.
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
Tjek REPLACE
http://dev.mysql.com/doc/refman/5.0/en/replace.html
REPLACE into table (id, name, age) values(1, "A", 19)