Konsep dan Penggunaan Stored Procedured pada MySQL
Dalam kesempatan yang sangat
barokah ini TS akan memebuat sebuah postingan tentang Stored
procedure
Gambaran Umum
Stored procedure adalah salah
satu objek rutin yang tersimpan pada database MySQL dan dapat digunakan untuk
menggantikan berbagai kumpulan perintah yang sering kita gunakan, seperti sejumlah
row ke table lain dengan filter tertentu.
Stored procedure sangat berguna
ketika kita tidak ingin user mengakses table secara langsung, atau dengan kata
lain membatasi hak akses user dan mencatat operasi yang dilakukan. Dengan
demikian resiko kebocoran dan kerusakan data dapat lebih diminalisir.
Pembuatan Stored Prosedure
Kita dapat membuat trigger dengan
perintah CREATE PROCEDURE. Berikut adalah syntax lengkapnya :
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name (proc_parameter[,...])
[characteristic ...] routine_body
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name (proc_parameter[,...])
[characteristic ...] routine_body
Keterangan :
- sp_name : nama stored procedure.
- proc_parameter : parameter input / output dari stored procedure tersebut (opsional).
- characteristic : menjelaskan karakteristik dari stored procedure (COMMENT, LANGUAGE SQL, dan lain-lain).
- routine_body : kumpulan perintah pada stored procedure tersebut.
- Jika DEFINER dispesifikasikan maka kita memutuskan trigger tersebut dijalankan hanya oleh user tertentu (dalam format penulisan user@host). Jika tidak dispesifikasikan, maka user yang melakukan perubahan (CURRENT_USER) adalah pilihan default.
Contoh Implementasi
Berikut adalah contoh pembuatan dan penggunaan stored
procedure untuk menghapus data berdasarkan "kode produk" untuk
tiga table yaitu table "ms_produk", "ms_harga_harian",
dan "tr_penjualan".
1. Buatlah satu stored procedure dengan nama HapusProduk, dengan satu argumen yaitu kode_produk_param bertipe teks (varchar) dengan perintah berikut :
2. Setelah selesai dieksekusi, pastikan stored procedure tersebut sudah terbentuk di database kita.
3. Sebelum kita mengeksekusi stored procedure tersebut. Kita coba lihat hasil query untuk produk "PROD-0000002" untuk ketiga table yang disebutkan di atas. Ini untuk memastikan adanya row untuk produk tersebut.
4. Sekarang coba panggil stored procedure HapusProduk dengan parameter "PROD-0000002" dan tunggu beberapa saat sampai eksekusi selesai.
5. Coba lakukan kembali perintah pada point no. 3 dan terlihat bahwa sudah tidak terdapat data untuk produk "PROD-0000002" pada ketiga table tersebut.
6. Berhasil.
1. Buatlah satu stored procedure dengan nama HapusProduk, dengan satu argumen yaitu kode_produk_param bertipe teks (varchar) dengan perintah berikut :
DELIMITER |
CREATE PROCEDURE HapusProduk(IN kode_produk_param VARCHAR(12))
BEGIN
DELETE FROM ms_produk WHERE kode_produk = kode_produk_param;
DELETE FROM ms_harga_harian WHERE kode_produk = kode_produk_param;
DELETE FROM tr_penjualan WHERE kode_produk = kode_produk_param;
END;
|
DELIMITER ;
CREATE PROCEDURE HapusProduk(IN kode_produk_param VARCHAR(12))
BEGIN
DELETE FROM ms_produk WHERE kode_produk = kode_produk_param;
DELETE FROM ms_harga_harian WHERE kode_produk = kode_produk_param;
DELETE FROM tr_penjualan WHERE kode_produk = kode_produk_param;
END;
|
DELIMITER ;
2. Setelah selesai dieksekusi, pastikan stored procedure tersebut sudah terbentuk di database kita.
3. Sebelum kita mengeksekusi stored procedure tersebut. Kita coba lihat hasil query untuk produk "PROD-0000002" untuk ketiga table yang disebutkan di atas. Ini untuk memastikan adanya row untuk produk tersebut.
4. Sekarang coba panggil stored procedure HapusProduk dengan parameter "PROD-0000002" dan tunggu beberapa saat sampai eksekusi selesai.
CALL HapusProduk('PROD-0000002');
5. Coba lakukan kembali perintah pada point no. 3 dan terlihat bahwa sudah tidak terdapat data untuk produk "PROD-0000002" pada ketiga table tersebut.
6. Berhasil.
Sekian postingan dari saya semoga bermanfaat bagi tugas dan
juga menjadi tips kuliah.
Wassalamualaikum Warohmatullohi Wabarokatuh...
Sumber :
Komentar
Posting Komentar