Facebook

Rabu, 10 September 2025

APA ITU TRIGGER?

Posted By: AlhamdDinasty - September 10, 2025

Share

& Comment






Apa itu trigger?

Trigger adalah objek database (sekumpulan perintah SQL) yang otomatis dijalankan ketika ada operasi tertentu pada sebuah tabel: INSERT, UPDATE, atau DELETE.
Trigger berguna untuk otomatisasi, menjaga konsistensi data, membuat log, atau melakukan validasi.

Dalam konteks basis data, trigger adalah kode (prosedur) yang berjalan secara otomatis sebagai respons terhadap suatu peristiwa (event) pada suatu tabel, seperti operasi INSERT, UPDATE, atau DELETE data. Trigger bertujuan untuk menjaga integritas data, melakukan validasi, menjalankan logika bisnis, dan mengotomatiskan tugas-tugas tertentu tanpa campur tangan manual, sehingga meningkatkan keandalan dan efisiensi database. 

Hal-hal penting tentang trigger di MySQL

  • Sintaks umum memerlukan DELIMITER karena ada blok BEGIN ... END.

  • Ada dua jenis waktu eksekusi: BEFORE dan AFTER.

    • BEFORE → dijalankan sebelum operasi utama; bisa mengubah NEW dan bisa membatalkan operasi (pakai SIGNAL).

    • AFTER → dijalankan setelah operasi utama; cocok untuk operasi yang tergantung data sudah tersimpan.

  • Dalam trigger FOR EACH ROW → dijalankan per baris (bukan per statement).

  • Akses nilai: NEW.col (nilai baru pada INSERT/UPDATE), OLD.col (nilai lama pada DELETE/UPDATE).

  • Trigger tidak boleh melakukan COMMIT/ROLLBACK.

  • Pastikan tabel yang meng-handle stok menggunakan engine yang support transaksi (InnoDB) bila butuh atomicity/locking.

  • Untuk membuat trigger butuh privilege TRIGGER.


1) Stok berubah saat INSERT

 penjualan/keluar barang



Contoh Trigger (AFTER INSERT):


Catatan/opsional (VALIDASI stok sebelum insert):

Kalau kamu ingin mencegah transaksi kalau stok tidak cukup, gunakan BEFORE INSERT dan SIGNAL untuk menghentikan insert:

  • BEFORE cocok untuk validasi karena bisa mencegah insert.

  • FOR UPDATE di SELECT membantu mengunci baris (butuh transaksi/engine InnoDB) untuk mengurangi race condition.




2) Stok kembali saat DELETE      transaksidibatalkan/dihapus



Contoh trigger (AFTER DELETE):


Saat baris transaksi dihapus, tambahkan kembali jumlah ke stok.

Catatan:

  • OLD.qty berisi nilai qty sebelum dihapus.

  • Trigger ini akan dipanggil per baris jika ada penghapusan banyak baris.



3) Stok berubah saat UPDATE (qty berubahatau pindah barang)



Contoh trigger 

UPDATE bisa kompleks karena:

  • Hanya qty berubah (mis. dari 2 → 5): stok harus dikurangi/ditambah selisihnya.

  • id_barang berubah (barang di transaksi dipindah ke item lain): stok OLD.id_barang harus dikembalikan, lalu stok NEW.id_barang dikurangi.

Contoh trigger yang menangani kedua kasus:

Opsional (validasi sebelum update):
Gunakan BEFORE UPDATE untuk memastikan stok barang baru cukup sebelum mengganti transaksi (lalu SIGNAL bila tidak cukup).


Kesimpulan

  • Trigger = query otomatis yang jalan saat ada perubahan di tabel.

  • Berguna untuk otomatisasi, konsistensi, dan keamanan data.

  • Bisa dipakai di kasus nyata seperti stok barang, log aktivitas, validasi data.




About AlhamdDinasty

Techism is an online Publication that complies Bizarre, Odd, Strange, Out of box facts about the stuff going around in the world which you may find hard to believe and understand. The Main Purpose of this site is to bring reality with a taste of entertainment

0 komentar:

Posting Komentar

Copyright © alhamd™ is a registered trademark.

Designed by Templateism. Hosted on Blogger Platform.