DEV Community

Dhiecoderweb
Dhiecoderweb

Posted on • Originally published at dhiecoderweb.com

Cara Membuat Trigger di MySQL

Pernahkah Anda ingin database otomatis mencatat perubahan data, memvalidasi input, atau memperbarui tabel lain setiap kali ada operasi INSERT, UPDATE, atau DELETE? Itulah fungsi Trigger di MySQL. Trigger adalah prosedur yang dieksekusi secara otomatis oleh MySQL sebagai respons terhadap event tertentu pada sebuah tabel. Artikel ini membahas cara membuat trigger MySQL secara lengkap dengan contoh nyata.

Konsep Dasar Trigger

Sebuah trigger memiliki tiga komponen utama:

  • Event: Kapan trigger aktif — INSERT, UPDATE, atau DELETE.
  • Timing: Apakah trigger berjalan BEFORE (sebelum) atau AFTER (setelah) event terjadi.
  • Body: Logika SQL yang dieksekusi ketika trigger aktif.

Di dalam body trigger, Anda bisa mengakses dua referensi khusus: NEW (nilai baru yang akan/sudah disimpan) dan OLD (nilai lama sebelum diubah/dihapus).

Persiapan Tabel Contoh

-- Tabel produk utama
CREATE TABLE produk (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(200) NOT NULL,
    harga DECIMAL(10,2) NOT NULL,
    stok INT NOT NULL DEFAULT 0,
    diperbarui DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB;

-- Tabel log untuk mencatat perubahan harga
CREATE TABLE log_perubahan_harga (
    id INT AUTO_INCREMENT PRIMARY KEY,
    id_produk INT NOT NULL,
    harga_lama DECIMAL(10,2) NOT NULL,
    harga_baru DECIMAL(10,2) NOT NULL,
    diubah_pada DATETIME DEFAULT CURRENT_TIMESTAMP,
    diubah_oleh VARCHAR(100) DEFAULT USER()
) ENGINE=InnoDB;

-- Tabel log untuk stok
CREATE TABLE log_stok (
    id INT AUTO_INCREMENT PRIMARY KEY,
    id_produk INT NOT NULL,
    aksi ENUM('MASUK', 'KELUAR', 'HAPUS') NOT NULL,
    stok_sebelum INT NOT NULL,
    stok_sesudah INT NOT NULL,
    selisih INT NOT NULL,
    dicatat DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
Enter fullscreen mode Exit fullscreen mode

Artikel ini ditampilkan sebagian. Untuk pembahasan selengkapnya, beserta contoh dan langkah detailnya, Anda dapat membacanya pada sumber aslinya:

Cara Membuat Trigger di MySQL

Tutorial pemrograman dan tools developer lainnya juga tersedia di dhiecoderweb.com.

Top comments (0)