问题:
pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现"more than one owned sequence found"的报错提示。
点击菜单"其它"-》"序列",可以看到有多个重复序列。

解决方案:
1、还原数据库的选项
还原数据库时把序列取消勾选,选择不还原序列。因为还原表的同时,会自动将自增序列还原上去,此处勾选会导致数据库重复创建序列。

点击还原数据库完毕后,可以看到序列仅有一个,没有出现重复序列。但此时的序列当前值是从1开始的,需要重置。

2、重置序列的当前值
执行SQL语句实现重置序列当前值为最大值+1的操作
SELECT setval('t_test_fid_seq', (SELECT MAX(fid) FRM tb_test) + 1);
执行后,可以看到序列当前值已经修复正确。

同理可以用上述sql语句重置其他表的序列值。
记得保存好这些SQL语句,下次再还原数据库后可以调出来批量执行即可。