sql >> Base de Datos >  >> RDS >> Oracle

Problema de restricción de clave externa en Oracle

En primer lugar, en Oracle, no hay ON UPDATE RESTRICT o ON DELETE RESTRICT opción. Esos parecen ser válidos en otros motores de bases de datos, pero no están presentes en el diagrama de sintaxis de restricciones y no parecen ser válidos. Hay un ON DELETE pero las únicas dos opciones válidas son CASCADE o SET NULL . No hay ON UPDATE cláusula.

Si añadimos una coma al final del airplane_id definición antes de la definición constante y elimine las dos cláusulas inválidas, su DDL debería ser válido

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