在oracle中,可以利用“alter table”語句配合“enable constraint”解決外鍵失效的問題,語法為“alter table tableName enable constraint 外鍵名稱;”,該語句能夠使失效的外鍵恢復(fù)。
本教程操作環(huán)境:windows10系統(tǒng)、Oracle 12c版、Dell G3電腦。
oracle外鍵失效怎么辦
使外鍵恢復(fù):
alter table tableName enable constraint 外鍵名稱;
擴(kuò)展:
使外鍵失效:
alter table tableName disable constraint 外鍵名稱;
刪除外鍵:
alter table tableName drop constraint 外鍵名稱;
ALTER TABLE … ENABLE/DISABLE CONSTRAINT命令用于啟用或禁用約束。
前提條件
提交工單聯(lián)系技術(shù)支持在shared_preload_libraries參數(shù)中添加polar_constraint插件。
內(nèi)核版本為V1.1.11及以上,升級內(nèi)核版本,請參見版本管理。
手動升級到V1.1.11內(nèi)核版本的集群需要安裝polar_constraint插件,命令如下:
CREATE EXTENSION IF NOT EXISTS polar_constraint;
語法
ALTER TABLE table_name ADD CONSTRAINT constraint_name DISABLE;
為表table_name添加一個約束,約束constraint_name為禁用狀態(tài),即對當(dāng)前表中的數(shù)據(jù)和新插入的數(shù)據(jù)都不起作用。
目前該語法支持如下四種類型的約束:
-
主鍵約束
-
唯一性約束
-
外鍵約束
-
CHECK約束
示例如下:
創(chuàng)建一個約束,要求a1列的值必須大于10,約束初始化為禁用狀態(tài)。
推薦教程:《Oracle視頻教程》