Правильный ли синтаксис, написанный в descrition, для триггеров MySQL? это будет работать? - PullRequest
0 голосов
/ 26 марта 2010

Правильный ли синтаксис, написанный в descrition, для триггеров MySQL? это будет работать?

CREATE OR REPLACE TRIGGER myTableAuditTrigger
  2  AFTER INSERT OR DELETE OR UPDATE ON myTable
  3  FOR EACH ROW
  4  BEGIN
  5    IF INSERTING THEN
  6      INSERT INTO myTableAudit (id, Operation, NewName, NewPhone)
  7      VALUES (1, 'Insert ', :NEW.Name, :NEW.PhoneNo);
  8    ELSIF DELETING THEN
  9      INSERT INTO myTableAudit (id, Operation, OldName, OldPhone)
 10      VALUES (1, 'Delete ', :OLD.Name, :OLD.PhoneNo);
 11    ELSIF UPDATING THEN
 12      INSERT INTO myTableAudit (id, Operation,
 13                               OldName, OldPhone, NewName, NewPhone)
 14      VALUES (1, 'Update ',
 15              :OLD.Name, :OLD.PhoneNo, :NEW.Name, :NEW.PhoneNo);
 16    END IF;
 17  END;
 18  /

1 Ответ

2 голосов
/ 26 марта 2010

Проверьте документацию MySQL для оператора CREATE TRIGGER, и вы увидите, что множественные события триггера недопустимы. Вам нужно будет создать отдельные триггеры для вставки, обновления и удаления. Лучшим подходом может быть использование двоичного журнала или общего журнала запросов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...