Mengapa Prosedur Tersimpan MySQL Saya Gagal Melaksanakan Transaksi dengan Berjaya?

DDD
Lepaskan: 2024-10-24 23:47:30
asal
302 orang telah melayarinya

Why Do My MySQL Stored Procedures Fail to Execute Transactions Successfully?

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
Salin selepas log masuk

Mengenalpasti Ralat

Setelah pemeriksaan rapi, dua ralat sintaks dikenal pasti:

  1. 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!

    sumber:php.cn
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!