Maison > Article > base de données > Les déclencheurs MySQL peuvent-ils empêcher l’échec des opérations INSERT ?
Provoquer l'échec des INSERTs avec des déclencheurs
Bien que les déclencheurs dans MySQL puissent modifier les données avant une insertion ou une mise à jour, on pensait initialement qu'ils pouvaient n’empêche pas l’opération d’échouer. Cependant, une exploration plus approfondie a révélé qu'il existe des méthodes pour obtenir cette fonctionnalité.
Solution de contournement de MySQL
Dans les versions MySQL 5.0 et 5.1, une solution de contournement peut être utilisée pour abandonner un déclencher et fournir un message d’erreur. Cela implique d'essayer d'accéder à une colonne inexistante :
CREATE TRIGGER mytabletriggerexample BEFORE INSERT FOR EACH ROW BEGIN IF(NEW.important_value) < (fancy * dancy * calculation) THEN DECLARE dummy INT; SELECT Your meaningful error message goes here INTO dummy FROM mytable WHERE mytable.id=new.id END IF; END;
Si la condition est remplie, le déclencheur tente de sélectionner le message d'erreur dans une table inexistante, provoquant l'échec de l'insertion avec le message fourni. .
Autres SGBDR
La possibilité de lever une exception dans un déclencheur et d'abandonner l'opération n'est pas universellement prise en charge dans tous les SGBDR. Cependant, certaines bases de données proposent des mécanismes alternatifs pour gérer les erreurs de validation dans les déclencheurs. Par exemple :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!