oracle 解决冲突的方法

 首先要确定约束在哪一字段上,使用sql:select * from user_constraints where table_name='TABLENAME',(这里要注意TABELNAME必须是大写),这样数据表所有的约束都会呈现出来,找到报错中SYS_C0053416约束条件,若本sql确能查询出该SYS_C0053416,删除该check约束问题也就可以解决,查看search_condition字段可以确定该约束使用在哪个字段上。

  删除check语句:ALTER TABLE TABLENAME DROP CONSTRAINT SYS_C0053416

 

 

查询外键

https://blog.csdn.net/qq441568267/article/details/73963817

 

 

Oracle中查询该表中的主键被哪些表引用的SQL语句:

 

[sql] view plain copy

  1. select c.TABLE_NAME  
  2.   from all_constraints p, all_constraints c  
  3.  where p.table_name = '表名'  
  4.    and p.OWNER = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')  
  5.    and c.OWNER=SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')  
  6.    and c.constraint_type = 'R'  
  7.    and p.CONSTRAINT_NAME = c.R_CONSTRAINT_NAME   

 

oracle中查询该表中的外键来源于哪些表的SQL语句:

 

[sql] view plain copy

  1. select cl.table_name  
  2.   from user_cons_columns cl  
  3.   left join user_constraints c  
  4.     on cl.constraint_name = c.r_constraint_name  
  5.  where c.constraint_type = 'R'  
  6.    and c.table_name = '表名'  

 

 

PS:查询owner的SQL语句: select SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') from dual

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值