GBase 8s
适配迁移
问答

mysql replace into语句等价替换

发表于2024-06-04 10:11:11168次浏览6个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】: 8s

【操作系统】: ubuntu 20.04

【CPU】: x86

【问题描述】*: 大家好,现在有个需求是实现mysql中的replace into语句,即待插入的数据如果在数据库中已经存在那么就更新,否则就插入。这样的功能应该如何实现

评论

登录后才可以发表评论
用户头像
琳大大发表于 2年前
merge into语句
DYY发表于 2年前
@琳大大:您好,非常感谢您的解答,我正在尝试,您可以给一个例子吗?我的业务场景是只有一张表,不是多张表
merge into _sys_tables_ as t1
using _sys_tables_ as t2
on t1._id_=t2._id_
when not matched then
insert (_id_,_num_,_status_, table_name,key_field,value_field)VALUES(100,100,100,"111", "222","333")
WHEN MATCHED THEN
UPDATE SET t1.table_name = "dyy";
这是我的语句,但是执行后表格中并没有新增新行
用户头像
琳大大发表于 2年前
@DYY:您好,因为是同一张表的merge,所以执行后都是matched状态,不会插入数据,如果表中有数据则会直接被update。
最佳回答
DYY发表于 2年前
@琳大大:非常感谢!
用户头像
琳大大发表于 2年前
@DYY:不客气~
崔哥发表于 4个月前
暖雨晴风初破冻,柳眼梅腮,已觉春心动。酒意诗情谁与共,泪融残粉花钿重。乍试夹衫金缕缝,山枕斜欹,枕损钗头凤。独抱浓愁无好梦,夜阑犹剪灯花弄。