Oracle
 sql >> Database >  >> RDS >> Oracle

Problema di vincolo della chiave esterna in Oracle

Innanzitutto, in Oracle non esiste ON UPDATE RESTRICT o ON DELETE RESTRICT opzione. Questi sembrano essere validi in altri motori di database ma non sono presenti nel diagramma della sintassi dei vincoli e non sembrano essere validi. C'è un ON DELETE clausola ma le uniche due opzioni valide sono CASCADE o SET NULL . Non c'è ON UPDATE clausola.

Se aggiungiamo una virgola alla fine di airplane_id definizione prima della definizione vincolante e rimuovi le due clausole non valide, il tuo DDL dovrebbe essere valido

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