`

ORA-00001:unique constraint (oracle 10g)

阅读更多

今天突然遇到这个异常:

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。重新建表,包括建表时的主键,还有与该表相关的序列,触发器等。

分享到:
评论
1 楼 fuqiangjava 2013-01-26  
写的不错 解决了自己的一个问题 谢谢了

相关推荐

Global site tag (gtag.js) - Google Analytics