Is the syntax written in descrition is correct for MySQL Triggers? will it work?
Is the syntax written in descrition is correct for MySQL Triggers? will it work?
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 /
Check the MySQL documentation for the CREATE TRIGGER
statement and you'll see that multiple trigger events aren't allowed. You'll need to create separate triggers for inserting, updating and deleting. A better approach might be to use binary logging or the general query log.
精彩评论