sql >> Database >  >> RDS >> Oracle

Probleem met externe sleutelbeperking in Oracle

Ten eerste is er in Oracle geen ON UPDATE RESTRICT of ON DELETE RESTRICT keuze. Die lijken geldig te zijn in andere database-engines, maar ze zijn niet aanwezig in de constraint syntaxisdiagram en lijken niet te kloppen. Er is een ON DELETE clausule maar de enige twee geldige opties zijn CASCADE of SET NULL . Er is geen ON UPDATE clausule.

Als we een komma toevoegen aan het einde van de airplane_id definitie voor de constante definitie en verwijder de twee ongeldige clausules, uw DDL zou geldig moeten zijn

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


  1. Oracle DB-tabel of -weergave bestaat niet

  2. Hoe parameter doorgeven aan sql 'in'-instructie?

  3. SQL:NIET IN alternatief voor het selecteren van rijen op basis van waarden van *verschillende* rijen?

  4. Een database maken van een script in MySQL