J'ai une application PHP qui insère «Pass», «Fail» ou «NA» dans les champs TEST1, TEST2, TEST3 ... à TEST15.MySQL Update Trigger with Conditions
J'ai un champ appelé OVERALL qui doit être automatiquement mis à jour avec 'FAIL' si l'un des champs TEST1-TEST15 contient 'Fail'. Je suis assez sûr que j'ai besoin d'utiliser un déclencheur contenant l'instruction de mise à jour et CASE ou IF, mais je n'ai pas été en mesure d'établir la syntaxe exacte.
Quelqu'un peut-il s'il vous plaît aider un noob MySQL? J'utilise la version du serveur MySQL: 5.1.63-0 + squeeze1 (Debian).
Ceci est très utile. Je vous remercie! Aurais-je besoin d'utiliser des instructions IF distinctes pour chaque colonne que je dois vérifier, ou existe-t-il une meilleure façon de le faire? –
Si c'est toujours la même colonne, vous mettriez à jour, alors vous pouvez simplement vérifier toutes les colonnes avec OU. Par exemple: IF NEW.yourColumn = 'FAIL' ou NEW.otherColumn = 'FAIL', etc. J'espère que ce que je veux dire est clair. – mboldt
Merci beaucoup de m'avoir aidé. Je pense que je suis proche! Je l'ai entré à l'invite mysql: 'délimiteur | CREER setoverall TRIGGER APRÈS LE INSERT TABLE_NAME POUR CHAQUE ROW BEGIN IF NEW.TEST1 = 'Fail' ALORS MISE A JOUR TABLE_NAME = ensemble global 'FAIL'; FIN SI; END; | délimiteur; ' MySQL ne se plaint pas, mais si j'insère de nouvelles données dans TABLE_NAME, la colonne OVERALL n'est pas mise à jour. D'autres indices? –