MySQL Triggers

1. Create Triggers

Pada pekan ini kita akan belajar mengenai trigger. Penulis mengunakan database classicmodels untuk menguji coba pembuatan triggers. Untuk membuat triggers disini penulis akan membuat table baru, berikut querynya:

 CREATE TABLE employees_audit (

    ->     id INT AUTO_INCREMENT PRIMARY KEY,

    ->     employeeNumber INT NOT NULL,

    ->     lastname VARCHAR(50) NOT NULL,

    ->     changedat DATETIME DEFAULT NULL,

    ->     action VARCHAR(50) DEFAULT NULL

    -> );

Kita akan coba mengecek apakah table sudah berhasil dibuat dengan menggunakan query SHOW TABLES:


Selanjutnya kita akan membuat triggers dengan fungsi BEFORE UPDATE, berikut query nya:

 CREATE TRIGGER before_employee_update

    ->     BEFORE UPDATE ON employees

    ->     FOR EACH ROW

    ->  INSERT INTO employees_audit

    ->  SET action = 'update',

    ->      employeeNumber = OLD.employeeNumber,

    ->      lastname = OLD.lastname,

    ->      changedat = NOW();

Fungsi trigger sudah berhasil dibuat coba kita tes dengan mengupdate salah satu data, berikut query nya:

 UPDATE employees

    -> SET

    ->     lastName = 'Phan'

    -> WHERE

    ->     employeeNumber = 1056;

Berdasarkan fungsi trigger yang sudah kita buat, percobaan yang sudah kita lakukan akan masuk ke dalam table employees_audit, karena itu mari kita cek menggunakan query SELECT, berikut hasilnya:


2. Drop Triggers

Kita akan cek ada trigger apa saja dengan menggunakan query SHOW TRIGGERS, berikut hasilnya:


Selanjutnya kita akan menghapus fungsi trigger yang sudah kita buat dengan menggunakan query DROP TRIGGER nama_trigger, berikut hasilnya:



by Syifa Ilafiah

Komentar