tidb有没有类似MERGE INTO 的实现

我们业务上有插入一张表若干数据,没记录时候插入,有数据更新这种操作,类型于其他数据库支持merge。
更新时候要求插入的数值和原来的数字做加法保存。

用replace
https://docs.pingcap.com/zh/tidb/v6.5/sql-statement-replace

1 个赞

replace是删除原来的数据,这里希望在原数据上修改,比如原来数据是10,修改为10加5

1 个赞

merge into 是Oracle的语法,根据一张表的一个字段匹配更新或者插入另外一个表,实际上是将update和insert合并在一起语句中,语法比较简洁。在MySQL 中没有merge into的语法,一般常规做法是使用两个语句,insert+ update 代替,或者使用INSERT INTO … ON DUPLICATE KEY UPDATE、replace进行部分替换 。 我在TiDB文档中也没查到merge into,感觉是没有。

1 个赞

我查了资料也都是分开写update和insert 用exists判断

估计后面会加入,暂时得在应用上搞

期待新功能

学到了

严格地讲,这么表述也是不准确的,SQL 语法都是写在标准里的,Oracle只是引入的稍早些,其他的关系型数据库也有各自的实现。

1 个赞

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。