在oracle中,可以利用“alter table”语句配合“enable constraint”解决外键失效的问题,语法为“alter table tableName enable constraint 外键名称;”,该语句能够使失效的外键恢复。
本教程操作环境:windows10系统、Oracle 12c版、Dell G3电脑。
oracle外键失效怎么办
使外键恢复:
alter table tableName enable constraint 外键名称;
扩展:
使外键失效:
alter table tableName disable constraint 外键名称;
删除外键:
alter table tableName drop constraint 外键名称;
ALTER TABLE … ENABLE/DISABLE CONSTRAINT命令用于启用或禁用约束。
前提条件
提交工单联系技术支持在shared_preload_libraries参数中添加polar_constraint插件。
内核版本为V1.1.11及以上,升级内核版本,请参见版本管理。
手动升级到V1.1.11内核版本的集群需要安装polar_constraint插件,命令如下:
CREATE EXTENSION IF NOT EXISTS polar_constraint;
语法
ALTER TABLE table_name ADD CONSTRAINT constraint_name DISABLE;
为表table_name添加一个约束,约束constraint_name为禁用状态,即对当前表中的数据和新插入的数据都不起作用。
目前该语法支持如下四种类型的约束:
-
主键约束
-
唯一性约束
-
外键约束
-
CHECK约束
示例如下:
创建一个约束,要求a1列的值必须大于10,约束初始化为禁用状态。
推荐教程:《Oracle视频教程》