29 Desember 2008

Nested Stored Procedure Transaction

Bagi yang mau buat aplikasi dengan menggunakan stored procedure MySQL harus berhati-hati dengan nested stored procedure.

Untuk nested stored procedure dengan fitur transaction tidak bisa menggunakan lebih dari satu Blok transaksi START TRANSACTION ... COMMIT/ROLLBACK. untuk itu cukup gunakan satu blok perintah START TRANSACTION ... COMMIT/ROLLBACK pada stored procedure utama.

Contoh:

CREATE PROCEDURE ProsedurMain()
BEGIN
START TRANSACTION
-- statement lain
-- ...
call ProsedurChild();
-- ...
-- statement lain
COMMIT;
END;


CREATE PROCEDURE ProsedurChild()
BEGIN
START TRANSACTION -- ==> statemet ini tidak perlu di tambahkan
-- statement lain
-- BLAH-BLAH
COMMIT; -- ==> statemet ini tidak perlu di tambahkan
END;

Tidak ada komentar: