2017-11-19 10 views
-2
insert into flight (FLIGHT_NUMBER,BUSINESS_CLASS_INDICATOR, 
    SMOKING_ALLOWED_INDICATOR,AIRLINE_AIRLINE_CODE,AIRPORT_AIRPORT_CODE) 
values ('AC101','Y','N','YYZ','AC'); 

エラー見つかりません:1コマンドでは - フライト挿入が ( 'AC101'、 'Y' の値、 'N'、 'YYZ'、 'AC')エラーレポート - ORA-02291:整合性 制約(BACS485G6.FLIGHT_AIRPORT_FKは)違反 - 親キーではない はYYZとACの両方が、このテーブルへの外部キーですORA-02291:整合性制約(BACS485G6.SYS_C0037497は)違反 - 親キーが行で始まる

を見つけました。どちらもそれぞれのテーブルのプライマリキーとして別々のテーブルに存在するので、なぜこのエラーが発生するのか分かりません。どんな助けでも大歓迎です。

ここには、外部キーの元のテーブルがあります。

AIRPORT_CO NAME            CITY       
---------- -------------------------------------------------- ------------------------------ 
YYZ  Toronto Pearson Intl. Airport      Toronto      
YUL  Montréal Pierre Elliott Trudeau Intl. Airport  Montreal      
JFK  John F. Kennedy Intl. Airport      New York      
ORD  O Hare International Airport      Chicago      
LCY  London City Airport        London       
EDI  Edinburgh Airport         Edinburgh      
CDG  Charles de Gaulle Airport       Paris       
NCE  Nice Cote d Azur Airport       Nice       
CGN  Cologne Bonn Airport        Bonn       
TXL  Berlin Tegel Airport        Berlin       
FCO  Leonardo da Vinci-Fiumicino Airport    Rome       
NAP  Naples Internatioal Airport      Naples 

AIRLINE_CO NAME           COUNTRY          
---------- --------------------------------------------- --------------------------------------------- 
AC   Air Canada         Canada          
US   USAir           USA           
BA   British Airways        UK           
AF   Air France         France          
B8   ItalAir          Italy           
LH   Lufthansa          Germany          
+1

オラクルはあなたに同意しません。まず、文の一部として挿入している列を明示的にリストします。親データが存在すると確信が持てば、列に間違った値を入れている可能性が高いです。まだ間違いを見つけられない場合は、修正された挿入、表とキーの定義、および親データを質問に含めてください。 –

+0

明示的にリストしようとしましたが、同じエラーが発生しました。私は外部キーがそこにいることを示すためにテーブルからselect *結果を含めました。まだ私が行方不明のものはありますか? – astrength

+2

それで、あなたの航空会社と空港のコードが正しい列に入っていると思いますか?最後の2つのカラム名の順番と、最後の2つの値の順番をもう一度見てください。 –

答えて

0

あなたは、空港コードとしてAC挿入するためにトリング、および航空会社コードなどXYZされています。あなたの親テーブルのデータによると、それらは間違った方法です。

あなたは実行する必要があります。

insert into flight (FLIGHT_NUMBER,BUSINESS_CLASS_INDICATOR, 
    SMOKING_ALLOWED_INDICATOR, AIRLINE_AIRLINE_CODE, AIRPORT_AIRPORT_CODE) 
values ('AC101','Y','N','AC','YYZ'); 

、または同じ値を維持し、列名を入れ替えます。

+0

あなたは正しく、私の最後には愚かな間違いです。ありがとうございました! – astrength

関連する問題