MYSQL 트리거에 오류가 발생합니다. 나는 여기에서 그리고 인터넷의 다른 곳에서 발견 된 다양한 형식의 구문을 사용했지만 아무 것도 작동하지 않는 것 같습니다.MYSQL 트리거 구문 오류
> CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG
> FOR EACH ROW BEGIN
> INSERT INTO WORKLOG_BACKUP VALUES(NULL, CURRENT_TIMESTAMP, NEW.LOGNO, NEW.JOBNO, NEW.EMPLOYEENO, NEW.WORKDATE, NEW.WORKTIME,
> 'UPDATE');
> END;
>
> CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG
> FOR EACH ROW BEGIN
> UPDATE WORKLOG_BACKUP SET BACKUPSTAMP = CURRENT_TIMESTAMP,
> UPDATE WORKLOG_BACKUP SET LOGNO = NEW.LOGNO,
> UPDATE WORKLOG_BACKUP SET JOBNO = NEW.JOBNO,
> UPDATE WORKLOG_BACKUP SET EMPLOYEENO = NEW.EMPLOYEENO,
> UPDATE WORKLOG_BACKUP SET WORKDATE = NEW.WORKDATE,
> UPDATE WORKLOG_BACKUP SET WORKTIME = NEW.WORKTIME,
> UPDATE WORKLOG_BACKUP SET CAUSE = 'UPDATE';
> END;
>
> CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG
> FOR EACH ROW BEGIN
> INSERT INTO WORKLOG_BACKUP VALUES(
> SET BACKUPSTAMP = CURRENT_TIMESTAMP,
> SET LOGNO = NEW.LOGNO,
> SET JOBNO = NEW.JOBNO,
> SET EMPLOYEENO = NEW.EMPLOYEENO,
> SET WORKDATE = NEW.WORKDATE,
> SET WORKTIME = NEW.WORKTIME,
> SET CAUSE = 'UPDATE');
> END;
내가 어떤 도움 누군가가 제공 할 수있는 appriciate 것 : 여기 내가 사용했던 구문의 3 가지 예입니다. phpmyadmin을 사용하고 있습니다.
감사합니다! 그러나 이제는 새로운 오류가 발생했습니다. 그것은 말하기를 # 1235 -이 버전의 MySQL은 아직 '하나의 테이블에 대해 동일한 동작 시간과 이벤트를 가진 다중 트리거'를 지원하지 않습니다. – JamesT
글쎄, 그 오류는 꽤 분명하지 않습니까? 분명히 [문서화되어 있습니다] (http://dev.mysql.com/doc/en/trigger-syntax.html) : "* 특히, 정품 인증 시간과 정품 인증 이벤트가 동일한 테이블에는 두 개의 트리거를 사용할 수 없습니다 예를 들어, 테이블에 두 개의'BEFORE INSERT' 트리거 또는 두 개의'AFTER UPDATE' 트리거를 정의 할 수는 없으며, 이것은'BEGIN을 사용하여 여러 명령문을 실행하는 트리거를 정의 할 수 있기 때문에 거의 제한적이지는 않습니다. .. END' 복합 문을 FOR EACH ROW 다음에 작성하십시오 (이 절의 뒷부분에 나오는 예제). * – eggyal