若依代码生成报错:ORA-00001: 违反唯一约

一、报错:

java.sql.SQLIntegrityConstraintViolationException ORA-00001 违反唯一约束条件

二、查看错误来源并解决

1.查看报错SQL语句对比数据库,我发现是主键ID重复了(这里id自增,数据库为orcl)
2.解决主键ID自增报错,步骤如下

--首先根据出错的SQL语句定位到需要修改的数据表 
-- SEQ开头为序列 ; SEQ_GEN_TABLE_COLUMN序列 GEN_TABLE_COLUMN为对应的数据表
-- 第一步: 查询字段对应的序列(sequence)的下一次值是多少
SELECT  SEQ_GEN_TABLE_COLUMN.NEXTVAL FROM dual; -- 我这里查出 596 
-- 第二步:查询数据表中对应字段的最大值
select max(t.COLUMN_ID) from GEN_TABLE_COLUMN t;--1379
-- 第三步:修改序列值步进大小,更新序列值步进值(自己定义即可,需要超过数据库表中对应的最大值); 596+步长>1379
alter sequence SEQ_GEN_TABLE_COLUMN increment by 800; 
-- 第四步:按照步进值将序列值新增,并得到下一个序列值
select SEQ_GEN_TABLE_COLUMN .nextval from dual; 
-- 第五步:恢复序列值步进大小为1
alter sequence SEQ_GEN_TABLE_COLUMN increment by 1; 

猜你喜欢

转载自blog.csdn.net/qq_44774287/article/details/128394628