Bonjour,

Je souhaite mettre en place le TRIGGER ci-après.
Le but, ON UPDATE de la table mac_ligne_fam, compter le nombre de lignes non validées (valide = 0) et si nul exécuter une requête sur la table mac_ligne_cde.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE TRIGGER update_ligne_fam
AFTER UPDATE ON mac_ligne_fam
FOR EACH ROW
BEGIN
    DECLARE nbLig INTEGER;
 
    -- Compte le nombre de familles non validées pour cette ligne de commande
    SELECT COUNT( * ) INTO nbLig
    FROM mac_ligne_fam
    WHERE id_cde = NEW.id_cde
        AND id_lig = NEW.id_lig
        AND valide = 0;
 
    -- Si 0 alors met à jour la ligne de commande
    IF nbLig = 0 THEN
        UPDATE mac_ligne_cde
        SET valide=1
        WHERE id_cde = NEW.id_cde
        AND id_lig = NEW.id_lig;
    END IF;
END;
Je suis sur un serveur mutualisé 1&1, et lorsque je lance cette requête depuis phpMyAdmin, j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5
La ligne 5 est celle du DECLARE ...

Si quelqu'un arrive à dénicher la faute de syntaxe ou de structure, je lui en serais reconnaissant.

D'avance merci.