Maison >base de données >tutoriel mysql >Pourquoi ma procédure stockée MySQL échoue-t-elle après l'implémentation de transactions ?
Implémentation des transactions dans la procédure stockée MySQL
Dans le but d'améliorer la fiabilité des données, un utilisateur a tenté d'implémenter des transactions dans sa procédure stockée MySQL . Cependant, les changements ont rendu la procédure non fonctionnelle. Malgré la consultation de la documentation et la recherche en ligne, l'utilisateur n'a pas pu identifier l'erreur.
En examinant le code fourni, il est évident qu'il y a deux erreurs de syntaxe :
Une fois ces erreurs de syntaxe corrigées, la procédure devrait fonctionner comme prévu, permettant à l'utilisateur d'implémenter les transactions de manière transparente. Le code corrigé devrait ressembler à ceci :
<code class="sql">BEGIN DECLARE poid INT; DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING BEGIN ROLLBACK; END; START TRANSACTION; -- ADD option 5 INSERT INTO product_option(product_id,option_id,required) VALUES(insertedProductID,5,0); SET poid = (SELECT LAST_INSERT_ID()); INSERT INTO product_option_value(product_option_id,product_id,option_id,option_value_id,quantity,subtract,price,price_prefix,points,points_prefix,weight,weight_prefix) VALUES(poid,insertedProductID,5,50,0,0,4.99,'+',0,'+',0,'+'); -- ADD option 12 INSERT INTO product_option(product_id,option_id,required) VALUES(insertedProductID,12,1); -- ADD option 13 INSERT INTO product_option(product_id,option_id,required) VALUES(insertedProductID,13,0); COMMIT; END</code>
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!