Stored procedure memungkinkan sebuah aplikasi berbasis database (SQL) mendefinisikan dan kemudian memanggil prosedur melalui pernyataan SQL. Stored procedure dapat digunakan untuk aplikasi terdistribusi (client server) maupun aplikasi tidak terdistribusi.
Keuntungan besar dalam menggunakan Stored procedure pada aplikasi terdistribusi adalah dapat digunakannya satu perintah CALL pada aplikasi untuk mengerjakan perintah yang sama. Tersimpannya Stored procedure pada sistem database terpusat memungkinkan dilakukannya perubahan untuk menyesuaikan dengan perubahan sistem terkini dan dapat berlaku untuk keseluruh sistem aplikasi yang ada tanpa perlu dilakukan perubahan untuk setiap modul aplikasi.
Dengan menggunakan Stored procedure, SQL tidak akan melakukan loading seluruh tabel yang ter‐relasi, tetapi langsung melakukan filtering berdasarkan query yang dimaksud sehingga dari sisi performa eksekusi, utilitas jaringan, dan keamanan dapat lebih terjaga.
Cara membuat Stored Procedure pada MySQL :
- Ubah delimiter menjadi “$$”.
“delimiter $$“ - Membuat procedure untuk melihat tabel.
“create procedure tampil()
->begin
->select*from nama.tabel;
->end $$” - Menggunakan procedure untuk melihat tabel.
“call tampil() $$“ - Membuat procedure untuk memasukkan data ke dalam tabel.
“create procedure tambah(field)
->begin
->insert into nama.tabel values(nama.field);
->end $$” - Menggunakan procedure untuk menambah isi tabel.
“call tambah(‘isi’) $$“ - Membuat procedure untuk mengedit isi tabel.
“create procedure edit(field.samaran)
->begin
->update nama.tabel set nama.field.asli=nama.field.samaran where field.primary.asli=field.primary.samaran;
->end $$” - Menggunakan procedure untuk mengedit isi tabel.
“call edit(‘primary/id.pada.where’,’record.baru’) $$“ - Membuat procedure untuk menghapus isi tabel.
“create procedure hapus(‘id/primary.samaran’)
->begin
->delete from nama.tabel where id/primary.asli=id/primary.samaran;
->end $$” - Mengggunakan procedure hapus untuk menghapus isi tabel.
“call hapus(‘id/primari.dari.where’) $$“ - Untuk melihat procedure yang telah dibuat, gunakan perintah
“show procedure status $$“
sedangkan untuk menghapus procedure, gunakan perintah
“drop procedure nama.procedure $$“.
Procedure banyak digunakan dengan alasan untuk mempersingkat script ketika membuat sebuah aplikasi management menggunakan database.
Stored procedure adalah salah satu objek routine yang tersimpan pada database MySQL dan dapat digunakan untuk menggantikan berbagai kumpulan perintah yang sering kita gunakan, seperti misalkan 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 Procedure
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
- 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 Penggunaan
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".