在 oracle 中执行 sql 语句时,报错:“ORA-00001: 违反唯一约束条件 SYS_C0024202”

 在 oracle 中执行 sql 语句时,报错:“ORA-00001: 违反唯一约束条件 SYS_C0024202”
报错信息如下:

表为“WK_ADMIN_USER”

解决方法:

1、查看违反约束的序列对应的数据库表与字段

select a.constraint_name,a.constraint_type,b.column_name,b.table_name
 from user_constraints a inner join user_cons_columns b 
 on a.table_name = b.table_name
 where a.constraint_name = 'SYS_C0024202';

 结果如下,表为“WK_ADMIN_USER”,字段为“USER_ID”

查看表“WK_ADMIN_USER”的约束

在 oracle 中执行 sql 语句时,报错:“ORA-00001: 违反唯一约束条件 SYS_C0024202”_第1张图片

 查看表“WK_ADMIN_USER”的索引

在 oracle 中执行 sql 语句时,报错:“ORA-00001: 违反唯一约束条件 SYS_C0024202”_第2张图片

2、查询数据库中的序列名称(sequence)

select * from user_sequences; 

在 oracle 中执行 sql 语句时,报错:“ORA-00001: 违反唯一约束条件 SYS_C0024202”_第3张图片

3、查询字段对应的序列(sequence)的下一次值是多少
 

select WK_ADMIN_USER_SEQ.nextval from dual;

在 oracle 中执行 sql 语句时,报错:“ORA-00001: 违反唯一约束条件 SYS_C0024202”_第4张图片

4、查询数据表中对应字段的最大值

在 oracle 中执行 sql 语句时,报错:“ORA-00001: 违反唯一约束条件 SYS_C0024202”_第5张图片

5、修改序列值步进大小,更新序列值

 alter sequence WK_ADMIN_USER_SEQ increment by 2000000;

6、检查序列值是否修改成功,并超过数据库表中对应字段的最大值

 select WK_ADMIN_USER_SEQ.nextval from dual;

在 oracle 中执行 sql 语句时,报错:“ORA-00001: 违反唯一约束条件 SYS_C0024202”_第6张图片

7、恢复序列值步进大小为1

 alter sequence WK_ADMIN_USER_SEQ increment by 1;

8、查看下一次的序列值大小

select WK_ADMIN_USER_SEQ.nextval from dual;

在 oracle 中执行 sql 语句时,报错:“ORA-00001: 违反唯一约束条件 SYS_C0024202”_第7张图片

 参考:https://www.cnblogs.com/hellowzl/p/16426941.html

 查看Oracle数据库中的序列(oracle查看序列)-数据库远程运维

你可能感兴趣的:(Oracle,oracle,数据库)