我们业务上有插入一张表若干数据,没记录时候插入,有数据更新这种操作,类型于其他数据库支持merge。
更新时候要求插入的数值和原来的数字做加法保存。
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 天后被自动关闭。不再允许新回复。