MySQL Upsert操作:存在则更新,不存在则插入
问题:
在MySQL中,是否存在一种高效的方法来执行“Upsert”操作,即如果一行不存在则插入新行,如果存在则更新现有行?
答案:
是的,MySQL 提供了 INSERT ... ON DUPLICATE KEY UPDATE
语法来实现此功能。以下是一个示例:
示例:
<code class="language-sql">INSERT INTO `usage` (`thing_id`, `times_used`, `first_time_used`) VALUES (4815162342, 1, NOW()) ON DUPLICATE KEY UPDATE `times_used` = `times_used` + 1</code>
说明:
INSERT INTO
子句尝试插入具有指定值的新行。ON DUPLICATE KEY UPDATE
子句定义了如果发生唯一键冲突(即,如果已经存在具有相同 thing_id
的行)时应该发生的情况。times_used
列加 1 来更新现有行。优势:
以上是如何在 MySQL 中高效执行更新插入?的详细内容。更多信息请关注PHP中文网其他相关文章!