暂无图片
OceanBase使用ON DUPLICATE KEY UPDATE的问题
我来答
分享
喊打喊杀回家睡觉
2023-12-08
OceanBase使用ON DUPLICATE KEY UPDATE的问题

CREATE TABLE "YBCCB"."TEMP" (

  "HANDLER_ID" VARCHAR2(38 CHAR) NOT NULL ENABLE,

  "CUST_ID" VARCHAR2(38 CHAR),

  "HANDLER_CUST_ID" VARCHAR2(38 CHAR),

  PRIMARY KEY ("HANDLER_ID")

)


上面是我的建表语句




这里是我的两条数据.

我使用这个SQL去执行插入,如果已存在就更新,但是一直报错,请问是为什么???


insert into "TEMP"

("HANDLER_ID","CUST_ID","HANDLER_CUST_ID")

values('121','222','333')

ON DUPLICATE KEY UPDATE CUST_ID=VALUES(CUST_ID);




有大佬能为我解惑吗? 我想要执行插入,在插入的时候如果有就更新,正确的SQL应该是什么.

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
白头叶猴

看报错码是oracle租户类型,应该不支持on duplicate语法,可以试试merge into

暂无图片 评论
暂无图片 有用 1
打赏 0
暂无图片
喊打喊杀回家睡觉
题主
2023-12-09
应该是不支持这个语法,我用merge into可以了,但是我在教程里面看见是可以用这个语法的,是因为版本的问题吗?
白头叶猴
答主
2023-12-11
查看租户类型 show variables like 'ob_compatibility_mode'; 如果是MySQL则支持on duplicate语法,如果是Oracle则支持Merge语法
回答交流
Markdown


请输入正文
提交
相关推荐
可以在查询窗口执行 PL控制脚本吗
回答 1
MySQL没有匿名块,可以用CREATEPROCEDURE语句创建一个有名字的存储过程,再用CALL语句调用。
ocp-express 部署
回答 1
为OceanBase集群增加OCPExpress(已部署OBAgent) https://www.oceanbase.com/docs/communityobdcn1000000000050
关于ob_define.h文件中宏OC_I5的理解
回答 1
用dowhile也是一种习惯,可以把一些变量等的作用域限制在某个区域不对外暴露。还可以让C程序员们非常习惯的在语句最后加一个分号’;’第二个问题看起来是历史原因,仅通过这个无法知道真实的原因。个人猜测
obdumper、obloader 使用矛盾咨询
回答 1
–preservezerodatetime参数可以试下,保留时间数据原有格式。https://www.oceanbase.com/docs/communityobloaderdumpercn10000
OceanBase有办法查到主集群每天传给备集群的日志量吗?
回答 1
在备集群查看clog文件大小算吗?
查询数据很慢,版本4.2
回答 1
在createtime建个所以试试,这个查询在ob里面应该是走了全表扫描了
哪里能下载到OceanBase的安装包啊?
回答 1
https://www.oceanbase.com/download轻量版,应该支持单点安装
主备切换后,数据不同步
回答 1
Failover模式下备变主后,不支持原主租户降备后接入成为新主租户的备租户重新走备库流程不支持
select for update锁是如何实现的
回答 1
行上面加X锁。跟MySQL(RR隔离级别)不同的是,OB不会对不存在的行或者本事务看不见的行(隔离级别决定了能看见什么数据行)加X锁。
ocp部署到启动的时候报错
回答 1
部署时使用的是随机默认密码,有特殊符号导致的租户检测不通过所导致的失败。
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~