Jumat, 15 Juli 2011

Trigger, store procedure, dan view

1.Trigger
Sintak :
CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
Contoh yang akan dibahas adalah mencatat kejadian-kejadian yang terjadi
beserta waktunya pada tabel mahasiswa, dan catatan-catatan tadi disimpan dalam tabel
yang lain, misal log_mhs. Misalkan struktur tabel log_mhs adalah sebagai berikut.
mysql> describe log_mhs;

Contoh 1:
mysql> create trigger ins_mhs after insert on mahasiswa
-> for each row insert into log_mhs values('Tambah data',now());
mysql> insert into mahasiswa values('00631','Hanif','Kalasan','P01');
mysql> select * from log_mhs;

Dari contoh diatas dapat dilihat bahwa ketika satu record pada tabel mahasiswa
disisipkan (insert), maka secara otomatis tabel log_mhs akan disisipkan satu record,
yaitu kejadian ‘Tambah data’ dan waktu saat record pada tabel mahasiswa
disisipkan.

2. Store procedure/function
Sintak :
CREATE PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
Keterangan :
sp_name: Nama routine yang akan dibuat
proc_parameter: Parameter stored procedue, terdiri dari :
IN : parameter yang digunakan sebagai masukan.
OUT : parameter yang digunakan sebagai keluaran
INOUT : parameter yang digunakan sebagai masukan sekaligus keluaran.
routine_body: terdiri dari statemen prosedur SQL yang valid.

Contoh :
mysql> delimiter //
mysql> create procedure pMhsIlkom(OUT x varchar(25))
-> begin
-> select nama into x from mahasiswa where kode_prodi='P01';
-> end
-> //
mysql> call pMhsIlkom(@Nama);
-> select @Nama;
-> //

3. View
Sintak :
CREATE
[OR REPLACE]
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]

Keterangan :
_ create: Statemen ini digunakan untuk membuat suatu view baru, atau mengganti
suatu view yang telah ada (exist) jika klausa OR REPLACE diberikan.
_ select_statement: Suatu statemen SELECT yang menyediakan definisi dari view.
Statemen ini dapat men-select dari tabel dasar atau view yang lain. Statemen ini
membutuhkan CREATE VIEW privilege untuk view, dan beberapa privilege untuk
setiap kolom terpilih oleh statemen SELECT.
_ [(column_list)]: Daftar kolom yang akan dipilih.
Contoh yang akan diberikan adalah view untuk menyimpan informasi detail
mahasiswa, dalam hal ini melibatkan 2 tabel, yaitu mahasiswa dan prodi.
Contoh:
mysql> create view vDetailMhs as
-> select m.nim, m.nama, m.alamat, p.nama_prodi, p.jurusan
-> from mahasiswa m, prodi p
-> where (m.kode_prodi=p.kode_prodi);
mysql> select * from vDetailMhs;

Dari contoh diatas dapat dijelaskan bahwa view tersebut berisi informasi
mahasiswa (nim, nama, alamat) dan informasi prodi mahasiswa yang bersangkutan
(nama_prodi dan jurusan). Implementasi view dalam program aplikasi adalah untuk
memudahkan dalam mendesain laporan (report).

Tidak ada komentar:

Posting Komentar