Transaktionsimplementierung in einer gespeicherten MySQL-Prozedur
Um die Datenzuverlässigkeit zu verbessern, hat ein Benutzer versucht, Transaktionen innerhalb seiner gespeicherten MySQL-Prozedur zu implementieren . Allerdings haben die Änderungen dazu geführt, dass das Verfahren nicht mehr funktionsfähig ist. Trotz Konsultation der Dokumentation und Online-Suche konnte der Benutzer den Fehler nicht identifizieren.
Bei der Untersuchung des bereitgestellten Codes wird deutlich, dass zwei Syntaxfehler vorliegen:
Sobald diese Syntaxfehler korrigiert sind, sollte das Verfahren wie vorgesehen funktionieren und es dem Benutzer ermöglichen, Transaktionen nahtlos zu implementieren. Der korrigierte Code sollte wie folgt aussehen:
<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>
Das obige ist der detaillierte Inhalt vonWarum schlägt meine gespeicherte MySQL-Prozedur nach der Implementierung von Transaktionen fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!