问题
本地数据库正常,但还原部署到服务器数据库后,添加表记录时提示“more than one owned sequence found”的异常报错。
解决方案
这个问题是自增列引起的,可能迁移或还原数据表结构时出现异常。解决的办法是重置标识字段列。(推荐方法二解决)
操作如下:
方法一
1.取消自增
将该列的标识下拉项选到空白项,然后再取消“标识”勾选,保存关闭设计窗口。
如果保存的时候提示“more than one owned sequence found”或“**** is an identify column”而无法保存,请跳到方法二。
2.测试验证
你到表里手动录入一条数据并提交,一般这时可以正常提交的。
3.重新设置标识
将原字段重新设置会标识自增项,下拉也选回原值,保存退出。
方法二
执行sql语句查询得到可以拼接后的删除序列语句
SELECT 'DROP SEQUENCE "'||c.relname||'";' FROM pg_class c WHERE c.relkind ='S'
ORDER BY c.relname
将语句复制出来 执行后会删除对应的序列,把重复的序列删除掉后,问题就解决了。
方法三
如果前面两步都无法解决问题,则只有重建表了。
复制表的结构和数据到新表,然后把旧表删除,将新表名变更回旧表名。此后在新表上做插入的测试验证,可以正常插入。
以上操作后,问题解决。