如果存在则如何更新,如果不存在则在 MySQL 中插入(AKA“upsert"或“merge")?

2022-01-30 00:00:00 sql upsert mysql insert-update

有没有一种简单的方法可以在行不存在时INSERT,或者如果存在则UPDATE,使用一个MySQL 查询?

Is there an easy way to INSERT a row when it does not exist, or to UPDATE if it exists, using one MySQL query?

推荐答案

使用 INSERT ... ON DUPLICATE KEY UPDATE.例如:

Use INSERT ... ON DUPLICATE KEY UPDATE. For example:

INSERT INTO `usage`
(`thing_id`, `times_used`, `first_time_used`)
VALUES
(4815162342, 1, NOW())
ON DUPLICATE KEY UPDATE
`times_used` = `times_used` + 1

相关文章