记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

oracle在使用dblink 远程调用数据,插入当前数据库时,

提示报错误:

ORA-02291: 违反完整约束条件 - 未找到父项关键字

检查发现: 两个表之间有外键约束,必须先插入父表再插入字表,删除的时候刚好相反 .



  CREATE TABLE "GPS_QUESTION_ANSWER"
   (    "QUESTION_ID" NUMBER,
    "ANSWER_ID" NUMBER,
    "ANSWER_CONTENT" VARCHAR2(512 BYTE),
     CONSTRAINT "PRIMARYGPS_QUESTION_ANSWER1" PRIMARY KEY ("QUESTION_ID", "ANSWER_ID")
 
     CONSTRAINT "FK_QUESTION_ANSWER" FOREIGN KEY ("QUESTION_ID")
      REFERENCES "GPS_QUESTION_SETTING" ("QUESTION_ID") ON DELETE CASCADE ENABLE
   )


SQL> desc gps_question_answer

Name           Type          Nullable Default Comments
-------------- ------------- -------- ------- --------
QUESTION_ID    NUMBER                                  
ANSWER_ID      NUMBER                                  
ANSWER_CONTENT VARCHAR2(512) Y                         

SQL> select * from gps_question_answer;
QUESTION_ID  ANSWER_ID ANSWER_CONTENT
----------- ---------- --------------------------------------------------------------------------------

SQL> select * from gps_question_answer@dblink186.regress.rdbms.dev.us.oracle.com;
QUESTION_ID  ANSWER_ID ANSWER_CONTENT
----------- ---------- --------------------------------------------------------------------------------
     155293          1 是
     155293          2 否
     173192          1 是
     173192          2 否
     178128          1 无
     178128          2 有
6 rows selected

SQL> insert into gps_question_answer select * from gps_question_answer@dblink186;
insert into gps_question_answer select * from gps_question_answer@dblink186
ORA-02291: 违反完整约束条件 (FK_QUESTION_ANSWER) - 未找到父项关键字

SQL> select * from gps_question_setting;
QUESTION_ID QUESTION_CONTENT                                                                  EMERGENCY   SHOW_TTS    SHOW_AD SET_USER             SET_TIME     COMPANY_ID
----------- -------------------------------------------------------------------------------- ---------- ---------- ---------- -------------------- ----------- -----------

SQL> select * from gps_question_setting@dblink186;
QUESTION_ID QUESTION_CONTENT                                                                  EMERGENCY   SHOW_TTS    SHOW_AD SET_USER             SET_TIME     COMPANY_ID
----------- -------------------------------------------------------------------------------- ---------- ---------- ---------- -------------------- ----------- -----------
     155293 你在做什么?                                                                              0          1          0 admin                2012-11-23            1
     173192 当前车辆是否有故障?                                                                      0          1          1 admin                2012-12-20            1
     178128 当前车辆是否有故障?                                                                       0          1          0 xiaomei              2013-8-16 1      177766
     220275 怎么改车牌号码                                                                            1          0          0 kxzs                 2014-12-6 2      219706

SQL> insert into gps_question_setting select * from gps_question_setting@dblink186;
4 rows inserted

SQL> insert into gps_question_answer select * from gps_question_answer@dblink186;
6 rows inserted

SQL>


转载请标明出处【ORA-02291: 违反完整约束条件 - 未找到父项关键字】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论