在mysql里面,当无数据进行插入,有数据进行更新时,我们可以用ON DUPLICATE KEY UPDATE.
在PostgreSQL 里面,我们可以用
INSERT INTO tablename(id,name,des)VALUES ('43000027','senvenno27','好人哥')ON conflict (packageID)DO update set des= '大好人哥';
我们用脚本执行这条sql是没有问题的,但是当我们使用mybatis的时候,会报错,说不识别conflict, 让我们替换成DUPLICATE。
解决方案: mybatis-plus的jslparser版本是4.4版本,它当前还不支持conflict语法。 手动排除mybatis-plus的jsqlparser依赖。 引入4.5及以上版本即可解决。
好久没写博客了,搜了半天看到这里说明了原因,mybatis-plus源码看网上也没有人写过怎么处理,还是把解决方法分享给大家。
如果觉得《PG 插入并更新 ON CONFLICT 且不识别CONFLICT》对你有帮助,请点赞、收藏,并留下你的观点哦!