Error Handling Pada Stored Procedure MySQL

Dalam stored procedure MySQL perintah RaiseError() tidak ada sehingga untuk menangani error yang terjadi dalam stored procedure MySQL menggunakan trik parameter output sehingga pesan error dapat ‘ditangkap’ oleh aplikasi yang menjalankan stored procedure tersebut, untuk lebih jelasnya silahkan lihat contoh berikut:

CREATE PROCEDURE SaveToDB($npm VARCHAR(10), $nama VARCHAR(50), OUT Message VARCHAR(255))
BEGIN
	DECLARE DUPLICATE_KEY CONDITION FOR 1062;
	DECLARE FOREIGN_KEY_VIOLATED CONDITION FOR 1452;

	-- Error handler untuk duplikasi data pada primary key
	DECLARE EXIT HANDLER FOR DUPLICATE_KEY
	BEGIN
		SET Message = 'Data sudah ada, silahkan cek isian anda!';
	END;

	-- Error handler untuk kesalahan pada FOREGN KEY tabel lain
	DECLARE EXIT HANDLER FOR FOREIGN_KEY_VIOLATED
	BEGIN
		SET Message = 'Referensi data salah, silahkan cek isian anda!';
	END;

	-- Error handler untuk kesalahan-kesalahan lain selain kedua handler diatas
	DECLARE EXIT HANDLER FOR SQLEXCEPTION
	BEGIN
		SET Message = 'Error pada query!';
	END;

	-- Jalankan query seperti biasa
	-- Insert ke tabel mahasiswa
	INSERT INTO mahasiswa(npm, nama) VALUES ($npm, $nama);
END;

Untuk menggunakannya:

CALL SaveToDB('0015031054', 'Nasrul Fatoni', @Message);
SELECT @Message;
Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: