Другой способ проверить действие триггера на СУБД Firebird - PullRequest
0 голосов
/ 17 ноября 2011

Есть ли другой способ проверить Firebird действие триггера (insert, update, delete), чем использование контекстной переменной INSERTING, UPDATING или DELETING?

IF (INSERTING) THEN
BEGIN
/* do something */
END

EDITED: Sorry, I figured I have mixed my experience with other database and Firebird. Thanks for all response for this question.

Ответы [ 2 ]

3 голосов
/ 17 ноября 2011

Другой способ - использовать разные триггеры для этих действий

1 голос
/ 17 ноября 2011

Вы можете написать разные триггеры для разных действий - но внутри триггера нет другого способа определить вызывающее действие, кроме использования переменных контекста.

CREATE TRIGGER mytrigger_bef_del FOR mytable
ACTIVE BEFORE DELETE POSITION 0
As
BEGIN
  ..
END

CREATE TRIGGER mytrigger_bef_upd FOR mytable
ACTIVE BEFORE UPDATE POSITION 0
As
BEGIN
  ..
END
...