数组库的主键Id用序列自动生成的,但是测试环境导入生产环境的数据库,而序列没有同步过来导致,当前序列的值小于数据库中数据的Id,使得每次新增数据的时候后台总会抛出主键唯一性的异常。
处理方法:
-- 查询当前ID最大值
SELECT MAX(ID) FROM USER;
-- 查询下一个序列
SELECT USER_SEQ.nextval FROM DUAL;
-- 增加序列的步长 (n = MAX(ID) - NEXTVAL + 1)
ALTER SEQUENCE USER_SEQ INCREMENT BY n
-- 获取下一个序列
SELECT USER_SEQ.nextval FROM DUAL;
-- 步长改成1
ALTER SEQUENCE USER_SEQ BY 1;
主要就是让序列的下一个值大于当前数据ID的最大值