Je travaille sur MySQL 5.1.3 et j'utilise PHPMyAdmin 3.1.3.1 pour y accéder. Avec PHP comme langage de script côté serveur. Mon énoncé de problème est que nous pouvons appeler une procédure ou une fonction stockée à partir de l'instruction Trigger de sorte que chaque fois qu'un déclencheur INSERT | UPDATE | DELETE est appelé, il appelle le SP pour mettre à jour d'autres tables selon la logique définie.comment appeler StoredProcedure ou des fonctions à partir d'un déclencheur MySQL?
Répondre
Regardez ici Mysql Trigger Syntax
mysql> delimiter //
mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON account
-> FOR EACH ROW
-> BEGIN
-> IF NEW.amount < 0 THEN
-> SET NEW.amount = 0;
-> ELSEIF NEW.amount > 100 THEN
-> SET NEW.amount = 100;
-> END IF;
-> END;//
mysql> delimiter;
Il peut être plus facile de définir un séparément, puis procédure stockée appeler à partir de la gâchette à l'aide d'une simple déclaration CALL
. Ceci est également avantageux si vous souhaitez appeler la même routine depuis plusieurs déclencheurs.
Il existe des limites à ce qui peut apparaître dans les déclarations qu'un déclencheur exécute lorsqu'il est activé:
Le déclencheur ne peut pas utiliser l'instruction CALL
pour appeler des procédures stockées qui renvoient des données au client ou que l'utilisation de SQL dynamique. (Les procédures stockées sont autorisés à renvoyer des données à la détente grâce à des paramètres OUT
ou INOUT
.)
Le déclencheur ne peut pas utiliser des instructions qui commencent explicitement ou implicitement ou mettre fin à une transaction telle que START
TRANSACTION
, COMMIT
ou ROLLBACK
.
Merci @ Octopus-Paul! bonne prédiction: D .. –