TRIGGER di SQL
🔹 Pengertian Trigger
Trigger adalah fitur di database MySQL (atau sistem basis data lainnya) yang berisi perintah SQL otomatis, yang akan dieksekusi secara otomatis ketika ada peristiwa tertentu pada tabel (misalnya INSERT
, UPDATE
, atau DELETE
).
Ibaratnya, trigger adalah “pemicu otomatis” yang berjalan di belakang layar tanpa harus dipanggil manual oleh user atau program.
🔹 Macam-Macam Trigger (berdasarkan waktu dan event)
-
Berdasarkan Waktu Eksekusi
-
BEFORE Trigger → dijalankan sebelum query utama dieksekusi.
-
AFTER Trigger → dijalankan sesudah query utama berhasil dieksekusi.
-
Berdasarkan Event (kejadian)
-
INSERT Trigger → otomatis berjalan saat ada data baru dimasukkan.
-
UPDATE Trigger → otomatis berjalan saat ada data diubah.
-
DELETE Trigger → otomatis berjalan saat ada data dihapus.
Berdasarkan Waktu Eksekusi
-
BEFORE Trigger → dijalankan sebelum query utama dieksekusi.
-
AFTER Trigger → dijalankan sesudah query utama berhasil dieksekusi.
Berdasarkan Event (kejadian)
-
INSERT Trigger → otomatis berjalan saat ada data baru dimasukkan.
-
UPDATE Trigger → otomatis berjalan saat ada data diubah.
-
DELETE Trigger → otomatis berjalan saat ada data dihapus.
🔗 Jadi kombinasi jenis trigger yang mungkin:
-
BEFORE INSERT
-
AFTER INSERT
-
BEFORE UPDATE
-
AFTER UPDATE
-
BEFORE DELETE
-
AFTER DELETE
🔹 Fungsi Trigger
-
Otomatisasi Proses → mengurangi pekerjaan manual (misalnya update stok barang otomatis setelah ada transaksi).
-
Menjaga Konsistensi Data → memastikan data antar tabel selalu sinkron.
-
Audit & Logging → mencatat otomatis setiap perubahan data (misalnya menyimpan history perubahan harga).
-
Validasi Data → bisa dipakai untuk memeriksa data sebelum dimasukkan/diubah.
Otomatisasi Proses → mengurangi pekerjaan manual (misalnya update stok barang otomatis setelah ada transaksi).
Menjaga Konsistensi Data → memastikan data antar tabel selalu sinkron.
Audit & Logging → mencatat otomatis setiap perubahan data (misalnya menyimpan history perubahan harga).
Validasi Data → bisa dipakai untuk memeriksa data sebelum dimasukkan/diubah.
🔹 Hal Positif (Kelebihan)
✅ Data lebih konsisten karena otomatis terupdate.
✅ Mengurangi kemungkinan human error (lupa update tabel lain).
✅ Bisa menjaga keamanan (misalnya mencegah penghapusan data penting).
✅ Memudahkan audit (rekam jejak perubahan otomatis tercatat).
🔹 Hal Negatif (Kekurangan)
❌ Sulit dilacak → karena berjalan otomatis, kadang programmer bingung kenapa data berubah tanpa query eksplisit.
❌ Performa berkurang → jika trigger terlalu banyak/kompleks, query jadi lambat.
❌ Sulit dipelihara → logika tersebar di trigger, bukan hanya di kode program.
❌ Bisa konflik → jika ada trigger yang saling bertentangan antar tabel.
Langkah – Langkah Membuat Trigger di MySQL
-
Tentukan Tujuan Trigger
-
Tentukan dulu fungsi trigger yang mau dibuat.
Misalnya: otomatis mengurangi stok saat ada transaksi penjualan, atau otomatis mencatat log setiap ada data baru.
-
-
Buka Database
-
Masuk ke phpMyAdmin.
-
Pilih database yang sudah dibuat (misalnya
fitribd
).
-
-
Masuk Menu Trigger
-
Di tab atas phpMyAdmin, cari menu Trigger.
-
Klik Tambah Trigger Baru.
-
-
Isi Detail Trigger
-
Nama Trigger → beri nama unik (misalnya
kurangi_stok
). -
Tabel → pilih tabel yang akan dipasang trigger (misalnya
fitri
). -
Waktu → pilih
BEFORE
atauAFTER
(tergantung eksekusi sebelum atau sesudah query). -
Event → pilih
INSERT
,UPDATE
, atauDELETE
(sesuai kebutuhan).
-
-
Tulis Perintah SQL di Trigger
-
Buat perintah yang dijalankan otomatis.
Misalnya: setelah ada penjualan masuk, stok berkurang.
-
-
Simpan Trigger
-
Klik Simpan atau Go.
-
Jika berhasil, trigger akan aktif otomatis setiap kali event yang dipilih terjadi.
-
-
Uji Coba Trigger
-
Lakukan proses
INSERT
atauUPDATE
sesuai event. -
Periksa tabel untuk memastikan trigger bekerja sesuai tujuan.
Komentar
Posting Komentar