0

免責事項: 私は学生です。私は航空会社で働いていません。私はプロのプログラマーのふりをしません。

こんにちは。これらのテーブルを連携させるには、何を修正する必要があるかを理解したいと思います。それは明らかだと思いますが、私にはそうではありません。私には、列が正しく一致しているように見えます。複合主キーの一部として複合外部キーを使用することに関係していると確信していますが、これを修正する方法がわかりません。多くの「TODO」がまだ残っている私の完全なコードは、Github Gist here にあります

現時点では Oracle DBMS にアクセスできず、今後数日間アクセスできないため、SQLFiddle を使用しています。これは、SQLPlus または Developer ができる完全な出力を提供しません。私は 12c を勉強しているので最適ではありませんが、SQLFiddle は 11g しかサポートしていません。よろしくお願いします。

これは SQL フィドルのエラー出力です。

ORA-02256: number of referencing columns must match referenced columns

そして、ここに互いに一致しない 2 つのテーブルがあります。

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

1 に答える 1