MySQL 저장 프로시저에서 트랜잭션 구현
데이터 신뢰성을 높이기 위해 사용자가 MySQL 저장 프로시저 내에서 트랜잭션을 구현하려고 시도했습니다. . 그러나 변경으로 인해 프로시저가 작동하지 않게 되었습니다. 문서를 참조하고 온라인으로 검색했음에도 불구하고 사용자는 오류를 식별할 수 없었습니다.
제공된 코드를 검토한 결과 두 가지 구문 오류가 있음이 분명합니다.
이러한 구문 오류가 수정되면 프로시저가 의도한 대로 작동하여 사용자가 트랜잭션을 원활하게 구현할 수 있습니다. 수정된 코드는 다음과 유사해야 합니다.
<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>
위 내용은 트랜잭션 구현 후 MySQL 저장 프로시저가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!