在運行以下語句的時候,報錯如下:
ALTER TABLE PN_POST
ADD CONSTRAINT POST_CLOB_FK
FOREIGN KEY (POST_BODY_ID)
REFERENCES PN_POST_BODY_CLOB (OBJECT_ID);
Error at line 1
ORA-02298: 無法驗證 (PNET.POST_CLOB_FK) - 未找到父項關鍵字
[@more@] /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;}
主要原因是:
在添加CONSTRAINT的時候,默認是需要VALIDATE表中的已有數據的。
你要插入的表A里,有外鍵連接到另一個表B的主鍵,你在表A的外鍵列插入的值,在表B的主鍵列找不到就不能插入。主要看兩表中的數據是否一致,從表中要關聯外鍵的字段中的數據必須包含在主表相關字段的數據內。
處理的方法有:
1> 先不驗證已有數據的CONSTRANT,加上參數NOVALIDATE.
SQL > ALTER TABLE PN_POST
ADD CONSTRAINT POST_CLOB_FK
FOREIGN KEY (POST_BODY_ID)
REFERENCES PN_POST_BODY_CLOB (OBJECT_ID)
NOVALIDATE;