新增一条记录出错,ORACLE抛出如下异 常:
1 ORA-00001: 违反唯一约束条 件 (OSCHEMA.TABLE_TEST_PK) *INSERT INTO "OSCHEMA"."TABLE_TEST" ("ID", "FIELD2", "FIELD3") VALUES (:ID0, :FIELD21, :FIELD32)
其中表"OSCHEMA"."TABLE_TEST"主键ID已设置唯一值,而插入记录时还是出现此种错误,可用如下PL/SQL语句将表下次递增的其实序列位置调整到先有记录最大主键值,即保证下一条记录的序列为当前最大序列加1,表"OSCHEMA"."TABLE_TEST"的主键字段是ID
declare
SEQ_VALUE number :=0;
Max_PK_VALUE number :=0;
begin
SELECT MAX(ID) INTO Max_PK_VALUE FROM TABLE_TEST;
loop
select OSCHEMA.TABLE_TEST_SEQ.nextval into SEQ_VALUE from dual;
--dbms_output.put_line(i);
exit when SEQ_VALUE = Max_PK_VALUE;
end loop;
commit;
end;
1 ORA-00001: 违反唯一约束条 件 (OSCHEMA.TABLE_TEST_PK) *INSERT INTO "OSCHEMA"."TABLE_TEST" ("ID", "FIELD2", "FIELD3") VALUES (:ID0, :FIELD21, :FIELD32)
其中表"OSCHEMA"."TABLE_TEST"主键ID已设置唯一值,而插入记录时还是出现此种错误,可用如下PL/SQL语句将表下次递增的其实序列位置调整到先有记录最大主键值,即保证下一条记录的序列为当前最大序列加1,表"OSCHEMA"."TABLE_TEST"的主键字段是ID
declare
SEQ_VALUE number :=0;
Max_PK_VALUE number :=0;
begin
SELECT MAX(ID) INTO Max_PK_VALUE FROM TABLE_TEST;
loop
select OSCHEMA.TABLE_TEST_SEQ.nextval into SEQ_VALUE from dual;
--dbms_output.put_line(i);
exit when SEQ_VALUE = Max_PK_VALUE;
end loop;
commit;
end;
White theme designed by Livid, this blog is proudly powered by Project Nexus.