BELAJAR MEMBUAT TRIGGER PADA TABEL MYSQL
A. Pengantar
Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE. INSERT , UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger.
Trigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE atau DELETE dari suatu tabel.
Melakukan update data otomatis jika terjadi perubahan. Contohnya adalah dalam sistem penjualan, jika dientri barang baru maka stock akan bertambah secara otomatis.
Trigger dapat digunakan untuk mengimplementasikan suatu sistem log. Setiap terjadi perubahan, secara otomatis akan menyimpan ke tabel log.
Trigger dapat digunakan untuk melakukan validasi dan verifikasi data sebelum data tersebut disimpan.
B. Membuat Trigger Baru
Berikut ini bentuk umum perintah untuk membuat triggers:
CREATE TRIGGER name
[BEFORE|AFTER] [INSERT|UPDATE|DELETE]
ON tablename
FOR EACH ROW
statement dimana BEFORE | AFTER digunakan untuk menentukan kapan proses secara otomatis akan dieksekusi, sebelum atau sesudah proses.
Latihan 1 dan Studi Kasus Trigger Sederhana
Membuat fitur yang mencatat log perubahan harga barang pada sebuah database penjualan.
1. Membuat sebuah database dengan nama "penjualan" sebagai wadah untuk tabel yang akan digunakan, caranya dengan mengetikkan perintah seperti gambar dibawah ini
Penjelasan Syntax MySQL:
Baris 2 – membuat sebuah trigger baru dengan nama before_produk_update dan trigger ini menggunakan event BEFORE UPDATE
Baris 4 – Query SQL untuk melakukan insert data ke tabel log_harga.
5. Uji coba trigger
- Masukkan beberapa record kedalam tabel produk, seperti berikut:
INSERT INTO produk VALUES ('ATK001','PENSIL',12000);
INSERT INTO produk VALUES ('ATK002','PENGHAPUS',8000);
- Update harga produk, contoh:
UPDATE produk SET harga=10000 WHERE kd_produk='ATK001'
6. Membuktikan trigger berhasil atau tidak, trigger akan berhasil jika di dalam tabel tujuan trigger, yang dalam contoh ini adalah tabel log_harga secara otomatis akan terdapat record baru, cara cek?
select * from log_harga;
Latihan 2:
1. Menambahkan field baru ke dalam tabel log_harga diantaranya sebagai berikut:
Nm_Produk_Baru dengan tipe data varchar (100)
Nm_Produk_Lama dengan tipe data varchar (100)
Adapun implementasinya sebagai berikut:
2. Koneksikan kedua field baru tersebut dengan trigger, caranya adalah:
- Anda dapat menghapus trigger sebelumnya kemudian membuat trigger baru dengan memanfaatkan fungsi DROP and CREATE.
- Anda dapat mengupdate trigger sebelumnya dengan memanfaatkan fungsi ALTER.
Namun dari kedua cara tersebut saya memilih cara pertama untuk implementasi kali ini, yaitu dengan mengahapus trigger sebelumnya kemudian membuat trigger baru, sedangkan cara menghapus trigger adalah dengan menggunakan perintah SQL seperti berikut:
DROP TRIGGER nama_trigger;
- Membuat trigger baru dengan sintax SQL seperti berikut:
3.Membuktikan trigger berhasil atau tidak, yaitu sama seperti cara sebelumnya, dimana kita mengupdate terlebih dahulu record yang diinginkan pada tabel Nm_Produk. Cntohnya seperti berikut ini:
- UPDATE produk SET nm_produk=PENGGARIS WHERE kd_produk='ATK001'.
Jadi, mungkin itulah contoh sederhana dari implementasi trigger pada tabel dalam sebuah database. semoga bermanfaat dan terima kasih.
Komentar
Posting Komentar