描述中编写的语法对于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 /
答案 0 :(得分:2)
检查MySQL文档中的CREATE TRIGGER
语句,您将看到不允许多个触发事件。您需要为插入,更新和删除创建单独的触发器。更好的方法可能是使用binary logging或general query log。