0% menganggap dokumen ini bermanfaat (0 suara)
306 tayangan

Membuat Trigger Di MySQL

Dokumen tersebut membahas tentang trigger di MySQL. Trigger adalah aksi atau prosedur SQL yang terjadi saat terdapat perubahan pada baris data tabel tertentu, seperti insert, update, atau delete. Dokumen tersebut menjelaskan cara membuat trigger, menggunakan referensi OLD dan NEW untuk baris data sebelum dan sesudah perubahan, beserta contoh trigger untuk mencatat baris yang dihapus ke tabel audit.

Diunggah oleh

Abdul Syukur
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
306 tayangan

Membuat Trigger Di MySQL

Dokumen tersebut membahas tentang trigger di MySQL. Trigger adalah aksi atau prosedur SQL yang terjadi saat terdapat perubahan pada baris data tabel tertentu, seperti insert, update, atau delete. Dokumen tersebut menjelaskan cara membuat trigger, menggunakan referensi OLD dan NEW untuk baris data sebelum dan sesudah perubahan, beserta contoh trigger untuk mencatat baris yang dihapus ke tabel audit.

Diunggah oleh

Abdul Syukur
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 4

Search this site

Bahasa SQL >


Membuat Trigger di MySQL

Contents

1 Pendahuluan
2 Pembuatan Trigger
3 Referensi "OLD" dan "NEW"
4 Contoh Penggunaan: Trigger After Delete
5 Sumber Referensi

Pendahuluan
Trigger adalah suatu objek database yang merupakan aksi atau prosedur yang terjadi jika terjadi perubahan pada suatu row. Trigger tidak dapat menjadi bagian dari suatu
temporary table atau suatu view.

Pembuatan Trigger
Berikut adalah syntax lengkap cara membuat trigger di MySQL:

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.
trigger_event  : merupakan event atau peristiwa yang menyebabkan trigger dilakukan. Pilihan event tersebut
adalah INSERT, UPDATE, DELETE.
tbl_name : nama table.
trigger_body : statement-statement perintah SQL yang akan dilakukan. Jika perintahnya lebih dari satu maka gunakan dalam
blok statement BEGIN ... END.
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.

Referensi "OLD" dan "NEW"

Karena trigger digunakan pada saat terjadi perubahan row data, maka kita perlu referensi ke row sebelum dan sesudah perubahan. Untuk ini ada dua alias yang berfungsi
untuk hal tersebut yaitu OLD dan NEW. 

Sesuai namanya, OLD digunakan untuk referensi sebelum perubahan dan NEW untuk referensi sesudah perubahan.

Contoh Penggunaan: Trigger After Delete

Berikut adalah contoh penggunaan trigger untuk event setelah penghapusan (AFTER DELETE) pada table "tr_penjualan"  - database phi_minimart. Langkah yang akan kita
lakukan adalah sebagai berikut :

1. 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,
yaitu tanggal penghapusan (tgl_perubahan) dan user MySQL yang melakukan hal tersebut (nama_user).

Berikut adalah perintahnya :

USE phi_minimart;
 
CREATE TABLE `tr_penjualan_hapus` LIKE `tr_penjualan`;
 
ALTER TABLE `tr_penjualan_hapus` ADD
        (
        `tgl_perubahan` DATETIME,
        `nama_user` VARCHAR(200)
        );

2. Tahap berikutnya adalah membuat trigger yang akan melakukan populasi data yang dihapus dari "tr_penjualan" ke table "tr_penjualan_hapus".

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_kasir,
                kode_item,
                kode_produk,
                jumlah_pembelian,
                tgl_perubahan,
                nama_user
        )
  VALUES
        (       OLD.tgl_transaksi,
                OLD.kode_cabang,
                OLD.kode_kasir,
                OLD.kode_item,
                OLD.kode_produk,
                OLD.jumlah_pembelian,
                SYSDATE(),
                CURRENT_USER
        );
END;
 
|
 
DELIMITER ;
3. Setelah trigger di atas kita buat, sekarang saatnya kita melakukan pengujian. Coba hapus tiga row data dari table "tr_penjualan" dan lihat efeknya di table
"tr_penjualan_hapus".

Jalankan perintah berikut :

DELETE FROM tr_penjualan LIMIT 3;
 
SELECT * FROM tr_penjualan_hapus;

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.

4. Selesai.

Jika ada yang kurang jelas dari artikel ini, Anda dapat menanyakan di user group facebook kami.

Sumber Referensi
http://dev.mysql.com/doc/refman/5.0/en/triggers.html

Comments

You do not have permission to add comments.

Anda mungkin juga menyukai