2016-10-28 4 views
0

Zuerst möchte ich mich entschuldigen, dass ich die Antwort, die bereits auf diese Frage gegeben wurde, nicht verstehe und um Geduld an diejenigen appelliere, die sagen "dies hat bereits beantwortet wurden, lesen Sie die Antworten ". Ich habe diese Seite durchforstet und jede Antwort gelesen - aber ich bin immer noch gestampft. Hier ist meine gesamte Abfrage und die Fehler, die ich erhalte:Fehlercode: 1452. Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: eine Fremdschlüsseleinschränkung schlägt fehl


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); 

Fehlercode: 1452. Kann nicht hinzugefügt werden oder ein Kind Zeile aktualisieren: ein Fremdschlüssel Einschränkung fehlschlägt (flghtreservationticketinfo, CONSTRAINT. ticketinfo_ibfk_2 FOREIGN KEY (Flight_no) REFERENCES flights (Flight_no))

Ich habe mir den Datentyp angesehen, der "Flight_no" zugewiesen wurde, und sie sind identisch, ich sehe keine, wo es keine Übereinstimmung gibt. Ich weiß, dass ich etwas vermisse, aber kann nicht für die letzten zwei Tage des Durchkämmens dieser Seite herausfinden, was. Also brauche ich Hilfe und ich brauche sie schnell.

Vielen Dank an alle für die sich Zeit nehmen, um dies zu lesen und zu unterstützen.

Antwort

0

Es ist ein Rekord in Flügen Tabelle für Flugnummer 311 fehlen, die in der zweiten Reihe von ticket verwiesen wird

('AA300', "Smith", 'B0012', 'E2', 311) 
+0

@ Jen. Danke vielmals. Ich wusste, dass es etwas war, das genau dort war und mich anstarrte - aber ich konnte es nicht herausfinden! Danke nochmal ! – zimara1

+0

@ zimara1 Wenn es hilft, fühlen Sie sich frei, meine Antwort zu akzeptieren. – Jens

0

Flugnummern in den Flügen Tabelle existieren muss, bevor es verwendet wird, wenn auf die ticket Tabelle um .

Der Fehler ist in dieser Zeile:

('AA300' "Smith", 'B0012', 'E2', 311),

+0

@ Braids Constance - vielen Dank. Ich änderte die Flugnummer in der ticketinfo Tabelle von 311 zu 312 (die auf der Flugtabelle war) und es funktionierte.Vielen Dank, Mann! – zimara1

+0

@ zimara1 Gern geschehen. Ich fange gerade erst an, also wenn Sie auf den Aufwärtspfeil neben ("upvote") meine Antwort klicken könnten, würde ich mich freuen. Wenn Sie nicht können, kein Stress. Ich schätze die Rückmeldung so oder so. –

0

Ja, ist ein Referenz Problem.

Sie haben keinen Datensatz eingefügt, die mit 311 in der Tabelle beginnt Flüge, dann, wenn Sie fügen Sie diesen ('AA300', "Smith", 'B0012', 'E2', 311) in Tabelle TicketInfo ... die Ausnahme überspringen.

zwei Optionen:

  1. einen neuen Datensatz hinzufügen, die in Tabelle Flüge mit 311 beginnt.
  2. Ändern Sie den Verweis 311 dieses Datensatzes ('AA300', "Smith", 'B0012', 'E2', 311) der Tabelle ticket einige durch, dass in der Tabelle vorhandenFlüge.
+0

@ FIPS - vielen Dank. Ich änderte die Flugnummer in der ticketinfo Tabelle von 311 zu 312 (die auf der Flugtabelle war) und es funktionierte. Vielen Dank, Mann! – zimara1

Verwandte Themen

 Verwandte Themen