Pada tutorial belajar MySQL ini saya akan berbagi tutorial cara membuat trigger. Trigger merupakan salah satu objek yang berguna selain stored procedure, function dan lainnya. Perlu diketahui bahwa trigger hanya ada pada MySQL versi 5 ke atas saja.

Trigger merupakan sebuah objek yang bekerja bersama sebuah table, yang mana digunakan untuk memeriksa sebuah operasi tertentu pada sebuah table. Trigger akan diaktifkan oleh MySQL apabila terjadi operasi tertentu pada sebuah table.

Cara Membuat Trigger di MySQL

Adapun operasi yang menyebabkan sebuah trigger diaktifkan diantaranya, yaitu:

  1. Insert, yaitu trigger akan diaktifkan ketika terjadi penambahan data pada sebuah table.
  2. Update, yaitu trigger akan diaktifkan ketika terjadi pengubahan data, yang mana data tersebut sudah ada sebelumnya pada sebuah table.
  3. Delete, yaitu trigger akan diaktifkan ketika terjadi penghapusan data pada sebuah table.

Cara Membuat Trigger di MySQL

Sebelum Anda membuat sebuah trigger di database ini. Silahkah pahami sintak membuat trigger di bawah ini.

CREATE
    [DEFINER = { USER | CURRENT_USER }]
    TRIGGER trigger_name
    trigger_time trigger_event
    ON tbl_name FOR EACH ROW
    trigger_body

Keterangan:

  • DEFINER: Digunakan untuk menentukan user yang dapat menjalankan trigger. Jika tidak ditentukan maka CURRENT_USER sebagai user default nya.
  • Trigger_name: Silahkan tentukan nama trigger yang akan Anda buat disini.
  • Trigger_time: Isi dari trigger_time ada 2, yaitu BEFORE dan AFTER. Trigger_time digunakan untuk menentukan kapan trigger ini dijalankan.
  • Trigger_event: Isi dari trigger_event ada 3, yaitu INSERT, UPDATE dan DELETE. Untuk penjelasan trigger_event seperti yang saya jelaskan sebelumnya.
  • Tbl_name: nama table.
  • Trigger_body: Query yang nanti kita tulis berada disini dan query ini yang nanti akan dieksekusi.

Untuk melengkapi tutorial belajar MySQL ini kita akan membuat contoh trigger AFTER INSERT. Berikut langkah-langkah lengkapnya.

  1. Buat database dengan nama ‘db_latihan’.
    CREATE DATABASE db_latihan;
  2. Buat table dengan nama ‘mahasiswa’ yang berisikan field seperti di bawah ini.
    USE db_latihan;
    
    CREATE TABLE mahasiswa (
      nim VARCHAR(10),
      nama VARCHAR(50) NOT NULL,
      alamat VARCHAR(200) NOT NULL,
      PRIMARY KEY (nim)
    );
    
  3. Buat table dengan nama ‘tbl_trigger’. Yang mana struktur table ini sama seperti table mahasiswa.
    CREATE TABLE tbl_trigger LIKE mahasiswa;
  4. Buat trigger dengan nama ‘trigger1’.
    DELIMITER $$
    
    CREATE TRIGGER trigger1 AFTER INSERT
        ON mahasiswa
        FOR EACH ROW BEGIN
    	INSERT INTO tbl_trigger (nim, nama, alamat) VALUES (new.nim, new.nama, new.alamat);
        END$$
    
    DELIMITER ;
    
  5. Selanjutnya masukan data ke table mahasiswa.
    INSERT INTO mahasiswa (nim, nama, alamat) VALUES ('M001', 'HANIIF', 'JL. BUNGA NO. 10');
  6. Jika data sudah dimasukan, silahkan cek data yang dimasukan tadi dengan query di bawah ini.

    Table mahasiswa

  7. Selanjutnya cek juga data pada table tbl_trigger.

    Table tbl_trigger

    Jika data pada table tbl_trigger isinya sama dengan table mahasiswa itu tandanya berhasil.

Semoga tutorial cara membuat trigger di MySQL ini bermanfaat untuk Anda. Simak juga tutorial sebelumnya cara membuat stored procedure di MySQL.