若依代码生成报错: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; 
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值