Oracle给已有数据的表修改外键约束

Oracle提供了对表中约束的修改功能,如`disable`可禁用外键约束,避免在插入数据时进行验证。`enablenovalidate`则能启用约束但不检查历史数据,而默认的`enable`会验证所有数据,可能导致违反约束条件的错误。查询所有约束数据可以使用`SELECT*FROMuser_constraints`。
摘要由CSDN通过智能技术生成

Oracle给已有数据的表修改外键约束

几种约束状态

这是Oracle中的几种约束状态,当我们在修改约束时,可以一起修改也可以全部修改,如下所示:

alter table T_STUDENT  disable constraints T_STUDENT_CLAZZ_FK

其中table后面是我们约束所在的表,disable代表我们不启用这个约束,后续插入数据的时候不会在进行外键的验证。

alter table T_STUDENT  enable novalidate constraints T_STUDENT_CLAZZ_FK

这条语句则代表我们启用该外键,但是不验证之前的历史数据。
其中一个注意的点就是如果我们使用enable而没有指定后边的novalidate时,enable默认的是后边添加的validate,也就是会校验数据表中的历史数据,如果数据表中历史数据有问题的话,就会出现为找到违反完整约束条件,未找到父项关键字。
查看所有约束数据:
执行如下语句

SELECT * FROM user_constraints

会看到如下的查询结果界面:

查询所有约束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值