Rumah >pangkalan data >tutorial mysql >Mengapa Prosedur Tersimpan MySQL Saya Gagal Melaksanakan Transaksi dengan Berjaya?
Menyelesaikan Isu Transaksi dalam Prosedur Tersimpan MySQL
Apabila cuba melaksanakan transaksi dalam prosedur tersimpan MySQL, pembangun mungkin menghadapi ralat yang tidak dijangka. Artikel ini akan meneroka sintaks dan ralat logik yang boleh menghalang kejayaan pelaksanaan prosedur tersimpan transaksi.
Kes: Transaksi Tidak Berjaya
Seorang pembangun menghadapi masalah apabila cuba melaksanakan transaksi dalam prosedur tersimpan. Walaupun mengikuti dokumentasi MySQL, prosedur itu gagal dilaksanakan dengan jayanya dan menyebabkan ketidakupayaan untuk menyimpan perubahan. Selepas pemeriksaan lanjut, kod tersebut nampaknya betul dari segi sintaksis.
Menganalisis Kod
Coretan kod yang disediakan adalah seperti berikut:
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
Mengenalpasti Ralat
Setelah pemeriksaan rapi, dua ralat sintaks dikenal pasti:
Tiada Koma dalam Pengendali Keluar:
Atas ialah kandungan terperinci Mengapa Prosedur Tersimpan MySQL Saya Gagal Melaksanakan Transaksi dengan Berjaya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!