Существует путаница в документации и поиске в Интернете о поддержке триггеров уровня операторов и строк. Согласно документации, которую я видел, последняя версия Firebird поддерживает триггеры как на уровне операторов, так и на уровне строк.
Предполагается, что Firebird поддерживает SQL-92/99. Стандартным подходом для этого является использование «для каждой строки» в триггерном SQL, однако это вызывает ошибку в firebird.
Вот мой триггер уровня оператора, который работает:
CREATE TRIGGER myExampleTrigger FOR myTable
AFTER UPDATE
AS
BEGIN
POST_EVENT 'testEvent';
END;
Вот мой триггер уровня строки, который не работает:
CREATE TRIGGER myExampleTrigger FOR myTable
AFTER UPDATE
AS
FOR EACH ROW
BEGIN
POST_EVENT 'testEvent';
END;
Триггер уровня оператора работает, чтобы опубликовать событие для обновлений в myTable. Когда я обновляю несколько строк, он публикует только одно событие.
Каков синтаксис оператора триггера, чтобы заставить его выполнять триггер на уровне строки, чтобы я мог опубликовать событие ДЛЯ КАЖДОЙ обновленной строки?