Show Halo temen-temen pejuang ilmu, apa kabar? Kali ini kita akan belajar bersama materi lawas yang punya banyak magic sekaligus masih sangat bermanfaat, salah satunya ialah Trigger pada SQL, dan kita akan belajar dengan database sejuta umat yaitu MySQL / MariaDB. PendahuluanTrigger 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. Intinya script SQL yang memicu terjadinya suatu kejadian seperti INSERT, UPDATE, DELETE secara otomatis setelah kejadian tertentu. Mungkin melalui pengertiannya akan sedikit membingungkan, maka dari itu mari kita langsung praktekkan. Pembuatan TriggerBerikut 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 :
// 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 TriggerDisini saya punya tabel p_item dan tabel t_sale_detail seperti ini : table t_sale_detail beforetable p_item beforeKita bisa menggunakan trigger untuk kasus jika data di tabel t_sale_detail bertambah, maka field stock di tabel p_item yang memiliki item_id yang sama, akan berkurang otomatis sesuai qty yang ada di tabel t_sale_detail. Begitupun sebaliknya, yang akan kita langsung praktekkan dibawah. Kita buat contoh trigger untuk event setelah penghapusan (AFTER DELETE) pada tabel t_sale_detail, jadi ketika delete data di tabel t_sale_detail maka field stock yang ada di tabel p_item dengan item_id yang sama akan bertambah sesuai qty di tabel t_sale_detail. Kurang lebih seperti ini script SQL-nya : DELIMITER | CREATE TRIGGER stock_del AFTER DELETE ON t_sale_detail FOR EACH ROW BEGIN UPDATE p_item SET stock = stock + OLD.qty WHERE item_id = OLD.item_id; END | DELIMITER; Okay, sudah ter-create sempurna triggernya. trigger stock_del in table t_sale_detailSekarang tinggal kita lihat hasilnya. Kita ingat-ingat dulu data-data pada 2 tabel diatas terutama bagian stock, kalo lupa temen2 bisa scroll-up dikit. Kita coba hapus data di tabel t_sale_detail dengan sale_id = 16 (detail_id = 27 & 28), dan lihat stock pada tabel p_item akan bertambah sesuai qty pada tabel t_sale_detail yang dihapus. table t_sale_detail after Wow, it works! Magic kan? Selain fitur-fitur bermanfaat yang sudah umum seperti DDL, DML, Join, ternyata SQL juga menyimpan banyak fungsi menarik lainnya seperti Procedure, Function, View, dan lain sebagainya yang menarik untuk kita coba. Selamat belajar dan praktek para pejuang! Semoga bermanfaat 🙂 Referensi : Apa fungsi dari trigger?Trigger dapat didefinisikan untuk menjalankan penrintah sebelum atau setelah eksekusi DML (Data Manipulation Language) seperti INSERT, UPDATE, dan DELETE. Trigger banyak digunakan untuk menjaga integritas informasi pada database.
Apa fungsi trigger SQL?TRIGGER adalah kumpulan kode SQL yang berjalan secara otomatis untuk mengeksekusi perintah INSERT, UPDATE, DELETE.
Apa itu trigger dalam pemrograman?Trigger adalah prosedur tersimpan pada Microsoft SQL Server yang secara otomatis dijalankan apabila data di dalam tabel berubah karena eksekusi perintah SQL (INSERT, UPDATE atau DELETE). Mengupdate tabel-tabel lain jika ada perubahan (Insert, update atau delete) pada tabel yang sedang aktif.
Apa yang dimaksud dengan trigger dalam database?Trigger dapat didefinisikan sebagai himpunan kode (prosedural) yang dieksekusi secara otomatis sebagai respon atas suatu kejadian berkaitan dengan tabel basis data. Kejadian (event) yang dapat membangkitkan trigger umumnya berupa pernyataan INSERT, UPDATE, dan DELETE.
|