日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ORA-02298: 无法验证 (约束) - 未找到父项关键字 解决办法

發布時間:2025/3/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORA-02298: 无法验证 (约束) - 未找到父项关键字 解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

--在用PL/SQL導入表數據的時候報錯 ORA-02298: 無法驗證 (PNET.POST_CLOB_FK) - 未找到父項關鍵字

--發現是啟用外鍵約束時報的錯
alter table DM_VOLREV enable constraint VR_VOLID_FK;

/*原因分析:
你要插入的表A里,有外鍵連接到另一個表B的主鍵,你在表A的外鍵列插入的值,在表B的主鍵列找不到就不能插入。
主要看兩表中的數據是否一致,從表中要關聯外鍵的字段中的數據必須包含在主表相關字段的數據內。
處理的方法有:

1> 先不驗證已有數據的CONSTRANT,加上參數NOVALIDATE.*/

ALTER TABLE PN_POST ADD CONSTRAINT POST_CLOB_FK FOREIGN KEY (POST_BODY_ID) REFERENCES PN_POST_BODY_CLOB (OBJECT_ID) NOVALIDATE;

--2>首先查看兩個表對應起來的數據有多少
select count(*) from dm_volrev t,DM_VOLID k where t.vr_volid = k.vi_volid;

--再分別查看單獨的數據,發現外鍵表多了一行
select count(*) from dm_volrev t;

select count(*) from DM_VOLID k;

--找到多的行并刪除
select t.vr_volid from dm_volrev t where t.vr_volid not in (select k.vi_volid from DM_VOLID k);

delete from dm_volrev t where t.vr_volid = 479908;

--直接重新執行啟用外鍵的語句,或者刪除之前的外鍵創建新的外鍵
alter table DM_VOLREV drop constraint VR_VOLID_FK;

ALTER TABLE DM_VOLREV ADD CONSTRAINT VR_VOLID_FK foreign KEY (VR_VOLID) references DM_VOLID(VI_VOLID) VALIDATE;


/*啟用約束:
enable( validate) :啟用約束,創建索引,對已有及新加入的數據執行約束.
enable novalidate :啟用約束,創建索引,僅對新加入的數據強制執行約束,而不管表中的現有數據.

禁用約束:
disable( novalidate):關閉約束,刪除索引,可以對約束列的數據進行修改等操作.
disable validate :關閉約束,刪除索引,不能對表進行 插入/更新/刪除等操作.*/

轉載于:https://www.cnblogs.com/Acamy/p/5890504.html

總結

以上是生活随笔為你收集整理的ORA-02298: 无法验证 (约束) - 未找到父项关键字 解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。