Проблемы с объявлением FK в Oracle 9i. Я рассмотрел несколько примеров здесь, в SO и в некоторых онлайн-документах (например, http://www.techonthenet.com/oracle/foreign_keys/foreign_delete.php) без особой удачи; попытка использовать синтаксис, аналогичный приведенному в ссылке, приводит к той же ошибке:
Error at Command Line:19 Column:4
Error report:
SQL Error: ORA-02253: constraint specification not allowed here
02253. 00000 - "constraint specification not allowed here"
*Cause: Constraint specification is not allowed here in the statement.
*Action: Remove the constraint specification from the statement.
Выдержка из самого SQL приведена ниже. «Строка 19» относится к строке, начинающейся с CONSTRAINT
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)
ON UPDATE RESTRICT ON DELETE RESTRICT,
dept_date date NOT NULL,
...
В качестве альтернативы, попытка без ключевого слова CONSTRAINT
приводит к ошибке о правильной круглой скобке, которая, как я не вижу, отсутствует.
PS: Я понимаю, что ОГРАНИЧЕНИЕ ОБНОВЛЕНИЯ - это поведение по умолчанию в Oracle, но я предпочитаю быть по возможности явным.