手机版
你好,游客 登录 注册
背景:
阅读新闻

jBPM3报错ORA-00001:违反唯一约束条件(A.SYS_C001234)

[日期:2016-12-29] 来源:Linux社区  作者:JanceD [字体: ]

我用的是比较老的jbpm版本3.2.3,由于数据库迁移,把jbpm数据导出后,再导入新的数据库,应用就会报错ORA-00001:违反唯一约束条件(A.SYS_C001234)

上网没查到如何解决这个问题,一是jbpm版本太老,二是jbpm本来用的人就不多。
经过仔细查找,终于解决了这个问题,现记录下来,以供参考。
 
首先,我先搜索这个SYS_C001234是个啥,发现它是jbpm某表中的主键id_的index,那就可以推测是jbpm的所有表中id的最大值(因为jbpm所有表id生成共用一个序列),已经超过序列的next number,而这个next number是创建jbpm新数据的id值。老值大于新值,也就是说这个新值已经存在了,无法使用,最佳解决方案就是更改序列的next number
然后,我在jbpm创建表的sql文档中发现了一个sequence,叫hibernate_sequence,打开这个序列,再对比jbpm其他表的id最大值(我对比了jbpm_log表,这个表使用最多,最大值最可能在这里),果然,最大id已经超过序列,把序列的next值修改成大于最大id的数值就解决了这个问题!
 
哇哈哈哈哈jbpm3报错ORA-00001:违反唯一约束条件(A.SYS_C001234)

更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-12/138955.htm

linux
相关资讯       jBPM  ORA-00001 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款