查询oracle数据库约束条件以及删除约束下内容

本文介绍如何在Oracle数据库中查询和管理外键约束,包括查询约束条件、删除受约束的数据行以及使约束失效和生效的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询所有约束条件:
select * from USER_CONSTRAINTS ;

constraint_type='R' 外键约束
constraint_type='P' 唯一性约束

查询外键约束:
select CONSTRAINT_NAME,TABLE_NAME from user_constraints

t where CONSTRAINT_TYPE ='R' ;

查询带有外键约束以及表名为'JS_RESOURCE'的所有约束 :
select a.constraint_name,a.table_name,a.column_name
from user_cons_columns a,user_constraints b
where a.constraint_name=b.constraint_name and
b.constraint_type='R' and b.table_name='JS_RESOURCE';

查询带有外键约束以及列名为'TYPEID'的约束:
select a.constraint_name,a.table_name,a.column_name
from user_cons_columns a,user_constraints b
where a.constraint_name=b.constraint_name and
b.constraint_type='R' and a.column_name ='TYPEID';

删除带有外键约束的表中的内容:
根据父表中主键的id值,先删除子表中的对应字段的内容,再删除父表中对应id值的内容;

使约束失效:
ALTER TABLE 表名 DISABLE CONSTRANT 约束名;
使约束条件生效:
ALTER TABLE 表名 ENABLE CONSTRANT 约束名;


问题:在有完整性约束条件下删除一行数据;
解决步骤:
1.查询出该行数据所有内容;select * from user;
2.试着根据id删除数据;delete from user where id='213';
3.如果有完整性约束,会报SQL错误:ORA-02292:违反完整性约束条件(TEST.FKFA236FEC23B0DE15)-已找到子记录等,根据约束名和表名查询
select * from user_cons_columns a,user_constraints b
where b.constraint_name='FKCDD5512A23B0DE15' and
a.table_name='USER';
4.按上述方法应该能查询到子表名,例如我的是contact_group ;
5.查询出user表的外键userid: select * from contact_group;
6.删除子表内容:delete from contact_group where userid='213';
7.删除主表内容:delete from user where id='213';
至此,完整性约束条件下删除一行数据完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值