You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL的INSERT ON CONFLICT冲突更新语句如何转MySQL语法

PostgreSQL 冲突更新语句转 MySQL 方案

等效语法

PostgreSQL 中的 ON CONFLICT(id) DO UPDATE 语法对应 MySQL 的 INSERT ... ON DUPLICATE KEY UPDATE 特性,转换后的语句如下:

sql = '''INSERT INTO `user`
(id, chat_id, state)
VALUES(%s, %s, 1)
ON DUPLICATE KEY UPDATE
chat_id = VALUES(chat_id), state = VALUES(state);
'''

说明

  • 你已经将 id 设为表的主键,满足 ON DUPLICATE KEY UPDATE 的触发条件:主键/唯一索引冲突时自动执行后续更新逻辑
  • 去掉了原语句中的 public. 前缀,因为 MySQL 没有 PostgreSQL 中的 schema 概念,和你已创建的表结构匹配
  • 语句中的 VALUES(chat_id) 等价于 PostgreSQL 中的 EXCLUDED.chat_id,代表本次插入语句中传入的对应字段值
  • 执行该语句时会自动触发表定义中 update_time 字段的 ON UPDATE CURRENT_TIMESTAMP 逻辑,无需额外配置

内容的提问来源于stack exchange,提问作者Tilei Liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:06:02