Oracle
 sql >> база данни >  >> RDS >> Oracle

Проблем с ограничение на външен ключ в Oracle

Първо, в Oracle няма ON UPDATE RESTRICT или ON DELETE RESTRICT опция. Те изглеждат валидни в други машини за бази данни, но не присъстват в синтактична диаграма на ограничение и не изглеждат валидни. Има ON DELETE клауза, но единствените две валидни опции са CASCADE или SET NULL . Няма ON UPDATE клауза.

Ако добавим запетая в края на airplane_id дефиниция преди констриантната дефиниция и премахнете двете невалидни клаузи, вашият DDL трябва да е валиден

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. винаги ли външният ключ се позовава на уникален ключ в друга таблица?

  2. Обединяване на много данни в едно

  3. Обикновено SELECT с променлива, но без INTO

  4. Как да боравим с незадължителни параметри в SQL заявка?

  5. цифрово препълване с NULL колона (0,3)