sharing-jdbc对于MySQL的ON DUPLICATE KEY UPDATE是不支持的吗? 底层原理是什么,那么对于replace into 支持吗?

操作MySQL时,使用了ON DUPLICATE KEY UPDATE方法进行insert和update的操作 ,发现错误信息提示并不支持这种SQL。

返回的错误信息是什么呢?堆栈日志呢?


这是on duplicate 可以update报错信息。

这是replace into的报错信息

这次更新涉及到了分片键,如果不是分片键,应该是可以的,分片键更新会涉及数据重路由问题,当前还不支持

replace 这个,是个parser 的问题,方便在github上提个issue吗?描述一下执行的sql,和报错信息,parser的同学会解决这个问题的

@喜欢学习的小明 看起来你使用的应该是 4.x 版本,可以尝试下最新的 5.0.0 GA 版吗?

我尝试过5.0.0版的,但是因为我的数据格式跟inline方式的取模方法要求的int类型不一样,所以需要自定义分表算法来解决这个问题,而5.0.0版本的我在yml里配置自定义算法也就是实现standpiecessharding接口,重写方法,但是这里与yml配置总是出现各种问题,一直配置不成功,而且现在网上众说纷坛,用的多是4版本的,所以我暂时先用4实现功能,以后新系统可能会用5.0.0。这个问题后来我改了SQL语句,不用replace into,也不对分片键做dml了。

我后来不用对分片键做dml操作了,换了别的SQL语句。不过仍旧谢谢您的解答。

京ICP备2021015875号