В отличие от других СУБД (например, MySQL), Oracle не поддерживает предложение ON UPDATE
во внешних ключах. Вам просто нужно удалить эту часть декларации.
Попробуйте:
CREATE TABLE Staff (
staffID VARCHAR(5) NOT NULL,
name VARCHAR(50),
position VARCHAR(30),
branchID VARCHAR(5),
PRIMARY KEY (staffID),
FOREIGN KEY (branchID) REFERENCES Branch(branchID) --ON UPDATE CASCADE
);
Демонстрация на DB Fiddle
Логика, лежащая в основе этого поведения Oracle, заключается в том, что указанный столбец не должен изменяться, поскольку он должен быть PRIMARY KEY
(или столбец UNIQUE
). Я считаю, что это ограничение имеет смысл ... они просто не хотят давать пользователям достаточно веревки, чтобы повеситься.