今天突然遇到这个异常:
ORA-00001:unique constraint
因为在node表上建了一个复合主键,即primary key(nodeid,parentid) 主键是由nodeid和parentid两个字段组成的。
在插入数据时,出现该异常。
起初还以为是插入的数据重复了,仔细一看没有。那么,可以排除是插入的数据重复造成的原因。
把该表删除后,重新建表,包括建表时的复合主键。
异常依就出现。。。。
把该表删除后, 开始查找该表的主键约束条件:
select * from user_cons_columns where table_name='NODE';
竟然出现了该表的主键约束条件:
nodeid SYS_C005341
parentid SYS_C005342
已经把该表删除了,但该表约束条件依然存在。。。? 原来是这样啊。。。原因找到。。。
解决方法:
1。先找到该表的主键约束条件,然后删除该表的主键约束条件:
SQL> select * from user_cons_columns where table_name='NODE' ;
然后删除约束条件:
SQL >alter table node drop constraint SYS_C005341;
SQL >alter table node drop constraint SYS_C005342;
2。重新建表,包括建表时的主键,还有与该表相关的序列,触发器等。