Trigger timetout
juju62
-
juju62 -
juju62 -
Bonjour,
J'ai un timeout à l'execution de ce trigger dans phpMyAdmin, auriez-vous une idée du pourquoi?
Merci d'avance
J'ai un timeout à l'execution de ce trigger dans phpMyAdmin, auriez-vous une idée du pourquoi?
Merci d'avance
DROP TRIGGER IF EXIST trigger_fluvial; DELIMITER // CREATE TRIGGER trigger_fluvial AFTER INSERT ON mouvements FOR EACH ROW BEGIN IF(NEW.bateau_sup != "1") THEN DECLARE dateMax DATETIME; DECLARE c CURSOR FOR SELECT MAX(date_sassee) FROM statistiques_fluviales; OPEN c; FETCH c into dateMax; IF(dateMax != NEW.date_debut) THEN IF(NEW.incident="") THEN INSERT INTO statistiques_fluviales(ecluse, nb_incident1, nb_incident2, nb_sassees_incident_ecluse_semaine, nb_sassees_total_ecluse_semaine, date_sassee) VALUES(NEW.ecluse, 0, 0, 0, 1, NEW.date_debut); END IF; IF(NEW.incident="1") THEN INSERT INTO statistiques_fluviales(ecluse, nb_incident1, nb_incident2, nb_sassees_incident_ecluse_semaine, nb_sassees_total_ecluse_semaine, date_sassee) VALUES(NEW.ecluse, 1, 0, 1, 1, NEW.date_debut); END IF; IF(NEW.incident="2") THEN INSERT INTO statistiques_fluviales(ecluse, nb_incident1, nb_incident2, nb_sassees_incident_ecluse_semaine, nb_sassees_total_ecluse_semaine, date_sassee) VALUES(NEW.ecluse, 0, 1, 1, 1, NEW.date_debut); END IF; ELSE IF(NEW.incident="1") THEN UPDATE statistiques_fluviales SET nb_incident1=nb_incident1+1, nb_sassees_incident_ecluse_semaine=nb_sassees_incident_ecluse_semaine+1, nb_sassees_total_ecluse_semaine=nb_sassees_total_ecluse_semaine+1 where ecluse = NEW.ecluse and date_sassee=NEW.date_debut; END IF; IF(NEW.incident="2") THEN UPDATE statistiques_fluviales SET nb_incident2=nb_incident2+1, nb_sassees_incident_ecluse_semaine=nb_sassees_incident_ecluse_semaine+1, nb_sassees_total_ecluse_semaine=nb_sassees_total_ecluse_semaine+1 where ecluse = NEW.ecluse and date_sassee=NEW.date_debut; END IF; IF(NEW.incident="") THEN UPDATE statistiques_fluviales SET nb_sassees_total_ecluse_semaine=nb_sassees_total_ecluse_semaine+1 where ecluse = NEW.ecluse and date_sassee=NEW.date_debut; END IF; END IF; END IF; END; // DELIMITER ;
A voir également:
- Trigger timetout
- Assistant trigger - Guide