我想在一个数据库表中添加一行,但如果存在具有相同唯一键的行,我想更新该行。
比如说。
insert into table (id, name, age) values(1, "A", 19)
假设唯一键是 "id",在我的数据库中有一条 "id=1 "的记录。在这种情况下,我想用这些值更新该行。通常情况下,这会产生一个错误。如果我使用insert IGNORE
,它会忽略这个错误,但仍然不会更新。
使用INSERT ... ON DUPLICATE KEY UPDATE
。
查询:
INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE
name="A", age=19
查看REPLACE
http://dev.mysql.com/doc/refman/5.0/en/replace.html
REPLACE into table (id, name, age) values(1, "A", 19)