Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Fremdschlüsselproblem in Oracle

Zunächst einmal gibt es in Oracle kein ON UPDATE RESTRICT oder ON DELETE RESTRICT Möglichkeit. Diese scheinen in anderen Datenbank-Engines gültig zu sein, sind aber in Einschränkungssyntaxdiagramm und scheinen nicht gültig zu sein. Es gibt einen ON DELETE -Klausel, aber die einzigen zwei gültigen Optionen sind CASCADE oder SET NULL . Es gibt kein ON UPDATE Klausel.

Wenn wir am Ende der airplane_id ein Komma hinzufügen -Definition vor der Constriant-Definition und entfernen Sie die beiden ungültigen Klauseln, Ihre DDL sollte gültig sein

CREATE TABLE Flight (
  flight_no varchar2(10) NOT NULL,
  airplane_id varchar2(20) NOT NULL,
  CONSTRAINT flight_airplane_id_fk 
    FOREIGN KEY (airplane_id) REFERENCES Airplane (airplane_id),
  dept_date date NOT NULL,
  <<more columns>>
);