风歌的blog

已搬家到 blog.imxjf.top
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ORA-02292主键约束问题

Posted on 2013-03-26 13:21  风歌  阅读(8885)  评论(0编辑  收藏  举报

 

  通常在删除某个表A的时候,会出现这个错误。原因是另一个表B的某个字段引用了A表的某个字段作为约束(这个的另一个说法是外键)。

假如引用的字段叫field,当B.field = A.field , 而你想删掉A.field,这时就爆出这个错误。解决办法是先把B.field (B.field = A.field的部分) 干掉,再干掉你想删除的A.field

 

问题是,如何知道哪个表引用了A表的field字段或其他字段?报错信息里并没有给出,只给出了约束的名称。这时可以查all_constraints。

 

select  table_name from all_constraints where constraint_name = '约束的名称' (一般如 FK_xxx)

查看选出的table_name 就知道索引了A的哪个字段。