Apa fungsi dari trigger mysql?

Apa fungsi dari trigger mysql?

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.

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. 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 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 INSERTUPDATEDELETE.
  • 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

Disini saya punya tabel p_item dan tabel t_sale_detail seperti ini :

Apa fungsi dari trigger mysql?
table t_sale_detail before

Apa fungsi dari trigger mysql?
table p_item before

Kita 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.

Apa fungsi dari trigger mysql?
trigger stock_del in table t_sale_detail

Sekarang 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.

Apa fungsi dari trigger mysql?
table t_sale_detail after

Apa fungsi dari trigger mysql?
table p_item 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 :
https://dev.mysql.com/doc/refman/8.0/en/triggers.html

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.