Да, это важно. Тот, кто не терпит неудачу, фактически говорит
AFTER (DELETE) OR (UPDATE OF COLUMN_NAME) ON TABLE_NAME
Тот, кто терпит неудачу - это (пытается) сказать
AFTER (UPDATE) OR (DELETE OF COLUMN_NAME) ON TABLE_NAME
(здесь скобки предназначены только для пояснения - использование их в реальном коде (tm) также приведет к синтаксической ошибке).
'OF COLUMN_NAME' действителен только в сочетании с UPDATE. При связывании с DELETE это синтаксическая ошибка.
Если вы не указали имя столбца, вы можете написать его в любом случае, например, в
AFTER UPDATE OR DELETE ON TABLE_NAME
или
AFTER DELETE OR UPDATE ON TABLE_NAME
Удачи.
EDIT
Цитирую Попай: «Ну, взорви меня !!!».
Я удивлен, но Oracle фактически примет OF column_name
после либо ОБНОВЛЕНИЯ, либо УДАЛЕНИЯ, и, очевидно, он срабатывает правильно в любом случае, рассматривая его так, как если бы триггер был написан для UPDATE OF COLUMN_NAME
, даже если UPDATE
не предшествует непосредственно OF COLUMN_NAME
.
dbfiddle здесь
Очевидно, что сообщение об ошибке создается исключительно разработчиком SQL, и база данных с радостью принимает его где и когда угодно.
Я узнаю что-нибудь «новое когда-либо» день. : -)