Membuat Store Procedure pada MySQL
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.
MySQL pada versi 5 telah mengenalkan fitur store procedure. Store procedure sendiri adalah sebuah procedure (pernyataan program yang berisi logika sql) yang tersimpan dalam database server.
Mengapa menggunakan Store Procedure :
Mengapa menggunakan Store Procedure :
- Karena berada dalam database server, logika pemrograman pada aplikasi tidak diperlukan lagi, yang harus dilakukan adalah memanggil store procedure.
- Mereduksi trafik pada jaringan yang mengakses database, karena logika pemrograman di laksanakan oleh database server, bukan oleh client
.
Contoh Kasus Update Stok Produk
Tabel produk :
Tabel produk :
mysql> select * from produk; +----------+------+-----------+--------+-------+ | idproduk | kode | nama | stok | harga | +----------+------+-----------+--------+-------+ | 1 | P001 | CDR-Blank | 10 | 2500 | | 2 | P002 | Pensil | 25 | 1300 | +----------+------+-----------+--------+-------
Akan dibuat sebuah procedure prod_tambah_stok, dengan diketahui idproduk dan jumlah atau quantity pembelian produk
Perintah membuat store procedure
mysql> delimiter // mysql> create procedure prod_tambah_stok (in idpro int, in jml int) -> begin -> update produk set stok=stok + jml where idproduk=idpro; -> end // mysql> delimiter ;
Memanggil Store Procedure
Diasumsikan telah di input data incoming untuk produk dengan id = 1 dan jumlah = 30
Diasumsikan telah di input data incoming untuk produk dengan id = 1 dan jumlah = 30
mysql> call pembelian_produk ( 1,30); Query OK, 1 row affected (0.00 sec)
Jika berjalan lancar data produk dengan idproduk 1 telah terupdate.
mysql> select * from produk; +----------+------+-----------+--------+-------+ | idproduk | kode | nama | stok | harga | +----------+------+-----------+--------+-------+ | 1 | P001 | CDR-Blank | 40 | 2500 | | 2 | P002 | Pensil | 25 | 1300 | +----------+------+-----------+--------+-------+ 2 rows in set (0.00 sec)
Latihan Store Procedure di MySQL
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“.
- 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 ; - Setelah selesai dieksekusi, pastikan stored procedure tersebut sudah terbentuk di database kita.
- 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.
- Sekarang coba panggil stored procedure HapusProduk dengan parameter ”PROD-0000002″ dan tunggu beberapa saat sampai eksekusi selesai.CALL HapusProduk(‘PROD-0000002′);
- Coba lakukan kembali perintah pada point no. 3 dan terlihat bahwa sudah tidak terdapat data untuk produk ”PROD-0000002″ pada ketiga table tersebut.
- Selesai
sumber: http://www.etunas.com/web/membuat-store-procedure-pada-mysql.htm
No comments:
Post a Comment