P. 1
Membuat Trigger Di MySQL

Membuat Trigger Di MySQL

|Views: 16|Likes:
Published by hanantasukma

More info:

Published by: hanantasukma on Feb 09, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/23/2013

pdf

text

original

PHI-Integration.

com E-Book Series on Data Management & Business Intelligence

Membuat Trigger di MySQL
DAFTAR ISI
Pendahuluan............................................................................................................................................................... 1 Pembuatan Trigger...................................................................................................................................................... 1 Referensi "OLD" dan "NEW"........................................................................................................................................ 2 Contoh Penggunaan.................................................................................................................................................... 2 Sumber Referensi........................................................................................................................................................ 5

Pendahuluan
Trigger adalah suatu objek database yang merupakan aksi atau prosedur yang dilakukan jika terjadi perubahan pada row data suatu table. Trigger tidak dapat menjadi bagian dari temporary table atau view. Beberapa contoh penggunaan trigger yang sangat berguna adalah jika kita ingin melakukan kalkulasi tertentu yang tidak perlu "diketahui" aplikasi luar, mencatat aktivitas operasi table misalkan untuk kepentingan change data capture (CDC), dan lain-lain.

Pembuatan Trigger
Kita dapat membuat trigger dengan perintah CREATE TRIGGER. Berikut adalah syntax lengkapnya :
CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_body

Keterangan : ● trigger_name = nama trigger.

● trigger_time = kapan kita mengeksekusi trigger, apakah sebelum atau sesudah perubahan pada row data
table. Jadi pilihannya adalah AFTER atau BEFORE.

http://mysql.phi-integration.com

Halaman : 1 / 4

Tiga langkah yang akan kita lakukan adalah sebagai berikut : 1. Sesuai namanya. DELETE. UPDATE. ● tbl_name = nama table. Contoh Penggunaan Berikut adalah contoh penggunaan trigger untuk event setelah penghapusan (AFTER DELETE) pada table "tr_penjualan" . Jika perintahnya lebih dari satu maka gunakan dalam blok statement BEGIN .phi-integration.com Halaman : 2 / 4 . Kita akan membuat satu table audit dengan nama "tr_penjualan_hapus" yang berisi row-row yang dihapus dari table "tr_penjualan" dengan tambahan dua field. Pilihan event tersebut adalah : INSERT. Jika tidak dispesifikasikan.com E-Book Series on Data Management & Business Intelligence ● trigger_event = merupakan event atau peristiwa yang menyebabkan trigger dilakukan... http://mysql. END. OLD digunakan untuk referensi sebelum perubahan dan NEW untuk referensi sesudah perubahan.PHI-Integration. ALTER TABLE `tr_penjualan_hapus` ADD ( `tgl_perubahan` DATETIME. ● Jika DEFINER dispesifikasikan maka kita memutuskan trigger tersebut dijalankan hanya oleh user tertentu (dalam format penulisan user@host).database phi_minimart. yaitu tanggal penghapusan (tgl_perubahan) dan user MySQL yang melakukan hal tersebut (nama_user). Untuk ini ada dua alias yang berfungsi untuk hal tersebut yaitu OLD dan NEW. Berikut adalah perintahnya : USE phi_minimart. `nama_user` VARCHAR(200) ). Referensi "OLD" dan "NEW" Karena trigger digunakan pada saat terjadi perubahan row data. maka kita perlu referensi ke row sebelum dan sesudah perubahan. CREATE TABLE `tr_penjualan_hapus` LIKE `tr_penjualan`. maka user yang melakukan perubahan (CURRENT_USER) adalah pilihan default. ● trigger_body = statement-statement perintah SQL yang akan dilakukan.

nama_user ) VALUES ( OLD. Berikut adalah perintahnya : DELIMITER | CREATE TRIGGER hapus_tr_penjualan AFTER DELETE ON tr_penjualan FOR EACH ROW BEGIN INSERT INTO tr_penjualan_hapus ( tgl_transaksi. kode_cabang.kode_item. jumlah_pembelian. CURRENT_USER ). | DELIMITER .com E-Book Series on Data Management & Business Intelligence 2. kode_kasir.kode_kasir. kode_produk. Tahap berikutnya adalah membuat trigger yang akan melakukan populasi data yang dihapus dari "tr_penjualan" ke table "tr_penjualan_hapus".kode_produk. OLD.PHI-Integration. END. kode_item.phi-integration.com Halaman : 3 / 4 . http://mysql. SYSDATE(). OLD. tgl_perubahan.tgl_transaksi.jumlah_pembelian. OLD. OLD.kode_cabang. OLD.

SELECT * FROM tr_penjualan_hapus.com/doc/refman/5.mysql. Jalankan perintah berikut : DELETE FROM tr_penjualan LIMIT 3. 4. Coba hapus tiga row data dari table "tr_penjualan" dan lihat efeknya di table "tr_penjualan_hapus".com Halaman : 4 / 4 . Terlihat pada gambar di atas 3 row yang dihapus telah "pindah" ke table "tr_penjualan_hapus" dengan tambahan informasi waktu penghapusan dan user yang menghapus.phi-integration. Sumber Referensi ● http://dev.html http://mysql.com E-Book Series on Data Management & Business Intelligence 3. sekarang saatnya kita melakukan pengujian.PHI-Integration. Selesai.0/en/triggers. Setelah trigger di atas kita buat.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->