一、报错信息
One or more values in the INSERT statement, UPDATE statement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique constraint or unique index identified by “1” constrains table “TABLE_A” from having duplicate values for the index key…SQLCODE=-803, SQLSTATE=23505
INSERT语句、UPDATE语句或由DELETE语句引起的外键更新中的一个或多个值是无效的,因为主键、唯一约束或由“1”标识的唯一索引约束表“TABLE_A”防止索引键有重复的值。
二、错误原因
数据库报这个错误是因为主键冲突,查看代码后发现这张表使用了自增主键,但是由于种种原因,主键自增在缓存的数字可能变了,于是出现了主键重复的报错。
三、db2自增主键
查看数据库DDL后发现主键使用的是自增,在插入数据时没有指定主键的值,按道理来说会自动设置一个自增的主键。
三、更新自增主键
首先,查询目前主键的最大值
比如查出来的最大值是19000,那么接下来就设置为19001
select max(ID) from table_a;
alter table table_a alter column ID restart with 19001
执行成功后
然后insert是不设置主键的值就可以成功新增了!