CREATE TRIGGER Usa_BIRBEFORE INSERT ON Usages FOR EACH ROWBEGIN -- Contrôle du ou des types de données des colonnes autres que PK et FK IF NOT NEW.code IS NULL THEN CALL check_normalizedstring(NEW.code, 'Usages.code , Les caractères de contrôle ne sont pas autorisés pour une donnée de type: word', 45002); END IF; IF NOT NEW.code IS NULL THEN CALL check_token(NEW.code, 'Usages.code , Deux espaces contigus ou plus ne sont pas autorisés pour une donnée de type: word', 45003); END IF; IF NOT NEW.code IS NULL THEN CALL check_word(NEW.code, 'Usages.code , Les espaces ne sont pas autorisés pour une donnée de type: word', 45004); END IF; IF NOT NEW.libelle IS NULL THEN CALL check_normalizedstring(NEW.libelle, 'Usages.libelle , Les caractères de contrôle ne sont pas autorisés pour une donnée de type: token', 45002); END IF; IF NOT NEW.libelle IS NULL THEN CALL check_token(NEW.libelle, 'Usages.libelle , Deux espaces contigus ou plus ne sont pas autorisés pour une donnée de type: token', 45003); END IF; -- Calcul de la ou des valeurs de colonnes d’ordonnancement BEGIN DECLARE lastcolOrder INTEGER ; IF NEW.ordre IS NULL THEN SELECT MAX(ordre) INTO lastcolOrder FROM Usages; IF lastcolOrder IS NULL THEN SET lastcolOrder = 0; END IF; SET NEW.ordre= lastcolOrder + 1; END IF; END;END