2010-03-26 4 views
0

는 한 Descrition로 작성된 구문은 MySQL의 트리거에 대한 올바른인가? 작동할까요?MySQL 트리거에서 descrition로 작성된 구문이 올바른가? 작동할까요?

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/

답변

2

확인 CREATE TRIGGER 문에 대한 MySQL의 문서와 그 여러 트리거 이벤트를 볼 수 있습니다은 허용되지 않습니다. 삽입, 업데이트 및 삭제를 위해 별도의 트리거를 만들어야합니다. 더 나은 방법은 binary logging 또는 general query log를 사용하는 수 있습니다.

+0

내가 감사 트레일에 대한 바이너리 로그 파일을 사용하려면, 그럼 내가 그걸 어떻게 할 수 있습니까 ?? –

관련 문제