2016-10-28 16 views
0

最初に、この質問に既に与えられている回答を理解していないと謝罪し、すでに回答されているので、答えを読んでください "。私はこのサイトを徹底的に調査し、すべての答えを読んだが、私はまだ挫折している。エラーコード:1452.子行を追加または更新できません:外部キー制約が失敗します


CREATE DATABASE flghtreservation; 

use flghtreservation; 

CREATE TABLE Passenger 
(
    Fname varchar (20) NOT NULL, 
    Lname varchar (30) NOT NULL, 
    Passenger_id varchar (6) Not NULL, 
    Phone_number varchar (20) NOT NULL, 
    Email_address varchar (20) NOT NULL, 
    Gender varchar (5) NOT NULL, 
    Fopayment varchar (15), 
    PRIMARY KEY (Passenger_id) 
); 

CREATE TABLE Airlines 
(
    Airline_name char (30) NOT NULL, 
    Airline_no INT NOT NULL, 
    PRIMARY KEY (Airline_no) 
); 

CREATE TABLE Airports 
(
    Airport_code char (3) NOT NULL, 
    Airport_name varchar (50) not null, 
    City varchar (20) NOT NULL, 
    State varchar (15) NOT NULL, 
    PRIMARY KEY (Airport_code) 
); 

CREATE TABLE Routes 
(
    Route_no varchar (8) NOT NULL, 
    Route_descrip varchar (30) NOT NULL, 
    PRIMARY KEY (Route_no) 
); 

CREATE TABLE Flights 
(
    Flight_no INT NOT NULL, 
    Airline_code char (5) NULL, 
    Departure_AirportCode char (5) NOT NULL, 
    Depature_date date NOT NULL, 
    Arrival_AirportCode char (5) Not NULL, 
    Arrival_date date not null, 
    Price decimal (5,2), 
    Airline_no INT NOT NULL, 
    Route_no varchar (8) NOT NULL, 
    PRIMARY KEY (Flight_no), 
    FOREIGN KEY (Airline_no) REFERENCES Airlines(Airline_no), 
    FOREIGN KEY (Route_no) REFERENCES Routes(Route_no) 
); 

CREATE TABLE Fare 
(
    Fare_type varchar (3) NOT NULL, 
    Fare_descrip varchar (15) NOT NULL, 
    Route_no varchar (8) Not nulL, 
    PRIMARY KEY (Fare_type), 
    FOREIGN KEY (Route_no) REFERENCES Routes(Route_no) 
); 


CREATE TABLE TicketInfo 
(
    Confirmation_no varchar (10) NOT NULL, 
    Lname varchar (30) NOT NULL, 
    Passenger_id varchar (6) NOT NULL, 
    Fare_type varchar (3) NOT NULL, 
    Flight_no INT NOT NULL, 
    PRIMARY KEY (Confirmation_no), 
    FOREIGN KEY (Passenger_id) REFERENCES Passenger(Passenger_id), 
    FOREIGN KEY (Flight_no) REFERENCES Flights(Flight_no)); 

insert into Passenger values 
("Taylor", "Amanda", 'B0011', '(952)-659-0259', '[email protected]', 'F', "Visa"), 
("Smith", "Adam", 'B0012', '(763)-555-0229', '[email protected]', 'M', "Master"), 
("Jeffries", "Daneil", 'B0013', '(214)-659-7885', '[email protected]', 'M', "Visa"), 
("Hassan", "Aisha", 'B0014', '(612)-159-0099', '[email protected]', 'F', "Master"), 
("Mohammad", "Nivi", 'B0015', '(204)-541-0201', '[email protected]', 'F', "Visa"); 


Insert into Airlines values 
("Southwest Airlines", 001), 
("Delta Airlines", 005), 
("American Airlines", 003), 
("United Airlines", 004), 
("Sun Country", 002); 

Insert into Airports values 
('ATL', "Hartsfield Jackson Atlanta International", "Atlanta", "Goergia"), 
('MSP', "Minneapolis-St Paul International", "Minneapolis", "Minnesota"), 
('ORD', "Chicago O’Hare International", "Chicago", "Illinois"), 
('LAX', "Los Angeles International", "Los Angeles", "California"), 
('JFK', "John F Kennedy International", "New York", "New York"), 
('SFO', "San Francisco International", "San Francisco", "California"), 
('DFW', "Dallas Fort Worth International", "Dallas-Fort Worth", "Texas"), 
('DEN', "Denver International", "Denver", "Colorado"), 
('LAS', "McCarran International", "Las Vegas", "Nevada"), 
('MCO', "Orlando International", "Orlando", "Florida"); 

insert into Routes values 

('RTE01', "North America Mid West Route"), 
('RTE02', "North America North East Route"), 
('RTE03', "North America East Coast Route"), 
('RTE04', "North America West Coast Route"); 

Insert into Flights values 
(111, "SW", "ATL","2016-08-02", "MSP", "2016-08-20", 321.50, 001, 'RTE01'), 
(112, "SW", "ATL","2016-08-03", "MSP", "2016-08-21", 250.50, 001, 'RTE01'), 
(511, "DL", "ATL","2016-08-02", "MSP", "2016-08-20", 390.50, 005, 'RTE01'), 
(312, "AA", "MSP","2016-09-02", "JFK", "2016-09-14", 467.50, 003, 'RTE02'), 
(512, "DL", "MSP","2016-09-02", "JFK", "2016-09-14", 500.50, 005, 'RTE02'), 
(411, "UA", "MSP","2016-09-02", "JFK", "2016-09-14", 350.50, 004, 'RTE02'), 
(211, "SC", "MSP","2016-09-05", "DFW", "2016-09-20", 400.50, 002, 'RTE03'), 
(513, "DL", "MSP","2016-09-05", "DFW", "2016-09-20", 430.50, 005, 'RTE03'), 
(414, "UA", "MSP","2016-09-05", "DFW", "2016-09-20", 390.50, 004, 'RTE03'), 
(113, "SW", "MSP","2016-09-04", "DEN", "2016-09-15", 540.50, 001, 'RTE02'), 
(514, "DL", "MSP","2016-09-04", "DFW", "2016-09-15", 600.50, 005, 'RTE02'), 
(413, "UA", "SFO","2016-09-05", "ORD", "2016-09-15", 570.50, 004, 'RTE01'), 
(114, "SW", "SFO","2016-09-05", "ORD", "2016-09-15", 400.50, 001, 'RTE03'), 
(515, "DL", "MSP","2016-09-06", "LAS", "2016-09-14", 410.50, 005, 'RTE04'), 
(313, "AA", "MSP","2016-09-06", "LAS", "2016-09-14", 395.50, 003, 'RTE04'), 
(212, "SC", "MSP","2016-09-06", "LAS", "2016-09-14", 350.50, 002, 'RTE04'), 
(516, "DL", "MSP","2016-09-10", "MCO", "2016-09-20", 580.50, 002, 'RTE03'), 
(416, "UA", "MSP","2016-09-10", "MCO", "2016-09-20", 470.50, 002, 'RTE03'), 
(315, "AA", "MSP","2016-09-05", "MCO", "2016-09-20", 470.50, 002, 'RTE03'), 
(115, "SW", "MSP","2016-09-05", "MCO", "2016-09-20", 410.50, 002, 'RTE03'), 
(214, "SC", "MSP","2016-09-05", "MCO", "2016-09-20", 400.50, 002, 'RTE03'), 
(215, "SC", "MSP","2016-10-05", "LAX", "2016-10-10", 410.50, 002, 'RTE03'), 
(517, "DL", "MSP","2016-10-05", "LAX", "2016-09-10", 520.50, 002, 'RTE03'), 
(415, "UA", "MSP","2016-10-05", "LAX", "2016-10-15", 400.50, 002, 'RTE03'); 

insert into Fare values 
('B1', "Business Class", 'RTE01'), 
('B2', "Business Class", 'RTE02'), 
('B3', "Business Class", 'RTE03'), 
('B4', "Business Class", 'RTE04'), 
('F1', "First Class", 'RTE01'), 
('F2', "First Class", 'RTE02'), 
('F3', "First Class", 'RTE03'), 
('F4', "First Class", 'RTE04'), 
('E1', "Economy Class", 'RTE01'), 
('E2', "Economy Class", 'RTE02'), 
('E3', "Economy Class", 'RTE03'), 
('E4', "Economy Class", 'RTE04'); 

insert into TicketInfo values 
('DL501', "Taylor", 'B0011', 'B1', 511), 
('AA300', "Smith", 'B0012', 'E2', 311), 
('SW100', "Jeffries", 'B0013', 'F1', 113), 
('UA400', "Hassan", 'B0014', 'E3', 414), 
('SC200', "Mohammad", 'B0015', 'B2', 212); 

エラーコードを:ここに私のクエリ全体と私は取得していますエラーがある1452は、子行を追加または更新できません:。外部キー 制約が失敗した(flghtreservationticketinfo、CONSTRAINT ticketinfo_ibfk_2 FOREIGN KEY(Flight_noflightsFlight_no)を参照)

「Flight_no」に割り当てられたデータ型を見ていて、それらが同じである場合、一致しない可能性のある場所は表示されません。私は何かが欠落していることを知っていますが、このサイトを通してコーミングの最後の2日間は何が分かりません。だから私は助けが必要で、私はそれをすばやく必要とする。

これを読んで助けてくれることに感謝します。

答えて

0

TicketInfoテーブルに追加する際に、それを使用する前に、TicketInfo

('AA300', "Smith", 'B0012', 'E2', 311) 
の第二列で参照されているフライト番号311
+0

@ Jen。どうもありがとう。私はそれが顔の中で私を見つめていたことが分かっていましたが、それを理解できませんでした!再度ありがとう ! – zimara1

+0

@ zimara1もし私の答えを受け入れるのが助けてくれれば助かります。 – Jens

0

フライト番号がフライトのテーブルに存在しなければならないために不足している便のテーブル内のレコードがあります。

エラーがこの行にある:

( 'AA300'、 "スミス"、 'B0012'、 'E2'、311)、

+0

@ Braids Constance - ありがとうございました。私はticketinfoテーブルのフライト番号を311から312に変更しました(これはフライトテーブル上にあります)。多くの感謝の男!! – zimara1

+0

@ zimara1ようこそ。私はちょうど始まっているので、私の答えの横にある上矢印( "upvote")をクリックすることができれば、私はそれを感謝します。あなたができなければ、ストレスはありません。いずれにしてもフィードバックに感謝します。 –

0

はい、基準の問題です。

あなたは表311で始まるレコードを挿入していない、そして、あなたはこの( 'AA300'、 "スミス"、 'B0012'、 'E2'、311)テーブルでを挿入したときTicketInfo ...例外を飛ばします。

つのオプション:

  1. が表便に311から始まる新しいレコードを追加します。
  2. 変更がテーブルに航空が存在することによって、いくつかのテーブルの参照このレコードの311( 'AA300'、 "スミス"、 'B0012'、 'E2'、311)TicketInfo
+0

@ FIPS - ありがとうございました。私はticketinfoテーブルのフライト番号を311から312に変更しました(これはフライトテーブル上にあります)。多くの感謝の男!! – zimara1

関連する問題