ORACLE数据库在导入导出时序列不一致的问题

在使用ORACLE数据库时,当给一个表设置自增字段时,我们经常会使用到序列+触发器来完成。但当你需要对数据库进行导入导出时,序列很容易出问题。

当你将数据库导出后,导入到另一个数据时,你会发现另一个数据库里的序列当前值会小于之前数据库的当前值,由此会导致你往该表插入数据时,会出现自增字

段的值重复的情况,如果这个自增字段为主键,则你的插入操作就会报错。

在网上找了一下资料,发现原来我们对数据库执行导出操作时,数据库先进行的是序列的导出,然后再进行表数据的导出,如果在序列导出的过程中,该系统一直在使用,则序列导出

完成后,开始导表数据的时候,有可能表数据因为系统在不断的使用导致表数据增长,里面的序列当前值已经增加了很多。当数据库导出完成后,会造成数据表中的实际记录跟序列的当前值不一致。

该问题的解决方法:在导入数据库成功后,重建序列,将序列当前值修改为表记录自增字的最大值+1,即可。

转载于:https://www.cnblogs.com/luckybird/p/3641862.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值