向MySQL表插入或更新(如果存在)。

我想在一个数据库表中添加一行,但如果存在具有相同唯一键的行,我想更新该行。

比如说。

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
评论(23)

查看REPLACE

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

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

试试这个。

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

希望这有帮助。

评论(6)