若依代码生成报错:ORA-00001: 违反唯一约
若依代码生成报错: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;
更多推荐
已为社区贡献1条内容
所有评论(0)