DISCLAIMER: Ich bin ein Student. Ich arbeite nicht für eine Fluggesellschaft. Ich gebe nicht vor, ein professioneller Programmierer zu sein.Oracle SQL 12c Wie verwenden Sie zusammengesetzte Fremdschlüssel in zusammengesetzten Primärschlüsseln korrekt?
Grüße, ich möchte verstehen, was ich korrigieren muss, damit diese Tabellen zusammen arbeiten. Ich bin mir sicher, dass es offensichtlich ist, aber es ist nicht für mich. Für mich sieht es so aus, als würde ich meine Spalten richtig zuordnen. Ich bin mir sicher, dass es mit der Verwendung eines zusammengesetzten Fremdschlüssels als Teil meines zusammengesetzten Primärschlüssels zu tun hat - aber ich weiß nicht, wie ich das korrigieren soll. Mein vollständiger Code, mit vielen 'TODOs' noch übrig, ist auf Github Gist here.
Ich habe zu diesem Zeitpunkt keinen Zugriff auf ein Oracle DBMS, und das wird nicht für mehrere Tage, also benutze ich SQLFiddle; was nicht die volle Ausgabe von SQLPlus oder Developer ergeben könnte. Es ist auch nicht optimal, weil ich 12c studiere, aber SQLFiddle bietet nur 11g Unterstützung. Vielen Dank im Voraus.
Dies ist SQL Fiedel der Fehlerausgabe:
ORA-02256: number of referencing columns must match referenced columns
Und hier sind die beiden Tabellen, die miteinander nicht einverstanden sind.
CREATE TABLE FLIGHT (
FLIGHT_ID NUMBER(3),
AIRCRAFT_ID VARCHAR(8),
FLIGHT_DATE DATE,
CONSTRAINT PK_flight_comp_pk PRIMARY KEY (FLIGHT_ID,FLIGHT_DATE),
CONSTRAINT FK_flight_route_ID FOREIGN KEY (FLIGHT_ID)
REFERENCES FLIGHT_ROUTE(ROUTE_ID),
CONSTRAINT FK_flight_serial_ID FOREIGN KEY (AIRCRAFT_ID)
REFERENCES AIRCRAFT(AIRCRAFT_ID)
);
CREATE TABLE RESERVATIONS (
CUSTOMER_ID NUMBER(4),
FLIGHT_ID NUMBER(3),
QTY_RESERVED_SEATS NUMBER(3),
CONSTRAINT PK_reservations PRIMARY KEY (CUSTOMER_ID,FLIGHT_ID),
CONSTRAINT FK_reservations_customer_ID FOREIGN KEY (CUSTOMER_ID)
REFERENCES CUSTOMER(CUSTOMER_ID),
CONSTRAINT FK_reservations_flight_ID FOREIGN KEY (FLIGHT_ID)
REFERENCES FLIGHT(FLIGHT_ID,FLIGHT_DATE)
);