Je reçois une erreur sur mon déclencheur MYSQL. J'ai utilisé différentes formes de syntaxe que j'ai trouvées ici et ailleurs sur internet mais rien ne semble fonctionner. Voici 3 exemples de syntaxe que j'ai utilisé:Erreur de syntaxe sur MYSQL Trigger
> 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;
Je apprécierais toute aide que n'importe qui peut fournir. J'utilise phpmyadmin.
Merci! Cela a fonctionné, cependant maintenant j'ai une nouvelle erreur. Il est dit # 1235 - Cette version de MySQL ne supporte pas encore 'plusieurs déclencheurs avec le même temps d'action et l'événement pour une table' – JamesT
Eh bien, cette erreur est assez claire n'est-ce pas? Il est même clairement [documenté] (http://dev.mysql.com/doc/fr/trigger-syntax.html): "* En particulier, vous ne pouvez pas avoir deux déclencheurs pour une table qui ont le même temps d'activation et l'événement d'activation Par exemple, vous ne pouvez pas définir deux déclencheurs 'BEFORE INSERT' ou deux déclencheurs' AFTER UPDATE' pour une table, ce qui devrait rarement être une limitation importante, car il est possible de définir un déclencheur qui exécute plusieurs instructions en utilisant 'BEGIN. .. END' construction d'instruction composée après 'FOR EACH ROW. (Un exemple apparaît plus loin dans cette section.) *" – eggyal