TRIGGER SQL


Trigger adalah sejenis objek database yang aktif secara otomatis menanggapi perubahan data tertentu di tabel atau tindakan tertentu yang dilakukan pada tabel. Triggers membantu memastikan integritas data, memberikan keamanan, dan dapat digunakan untuk mengotomatiskan tindakan tertentu ketika perubahan data terjadi.

Sebuah trigger dapat diaktifkan oleh peristiwa tertentu, seperti operasi INSERT, UPDATE, DELETE, atau kombinasi dari operasi tersebut. Dengan kata lain, trigger dapat diatur untuk berjalan sebelum atau sesudah suatu peristiwa terjadi.

Secara umum, ada dua jenis trigger dalam SQL:

  1. BEFORE Trigger:

    • BEFORE INSERT: Diaktifkan sebelum data dimasukkan ke dalam tabel.
    • BEFORE UPDATE: Diaktifkan sebelum data diupdate di dalam tabel.
    • BEFORE DELETE: Diaktifkan sebelum data dihapus dari tabel.
  2. AFTER Trigger:

    • AFTER INSERT: Diaktifkan setelah data dimasukkan ke dalam tabel.
    • AFTER UPDATE: Diaktifkan setelah data diupdate di dalam tabel.
    • AFTER DELETE: Diaktifkan setelah data dihapus dari tabel.

Contoh penggunaan trigger dapat mencakup validasi data, audit logging, pengelolaan referential integrity, dan tugas-tugas otomatis lainnya. Misalnya, trigger dapat digunakan untuk memastikan bahwa setiap kali ada penghapusan pada satu tabel, operasi terkait juga terjadi pada tabel lain yang terkait.

Perlu dicatat bahwa penggunaan trigger harus bijaksana, karena mereka dapat mempengaruhi kinerja sistem jika tidak dikelola dengan benar. Terlalu banyak atau kompleks trigger dapat membuat aplikasi sulit dipahami dan memelihara. Oleh karena itu, penting untuk merencanakan penggunaan trigger sesuai kebutuhan dan menjaga konsistensi data.


A. Perintah Trigger Ke 1

Database yang saya gunakan untuk mencoba trigger SQL adalah database penjualan.

1. Tabel Barang



2. Tabel Transaksi




3. Perintah Trigger SQL

Perintah yang saya jalankan adalah jika menambahkan sebuah data transaksi pada tabel transaksi, maka akan mengurangi jumlah stok barang yang ada di tabel barang sesuai dengan qty pada tabel transaksi.



Berikut adalah hasil dari trigger SQL saat saya menambahkan sebuah data transaksi. Perhatikan jumlah stok pada tabel barang sebelum saya menambahkan sebuah data transaksi pada tabel transaksi.


Lalu saya menambahkan sebuah data transaksi baru pada tabel transaksi. Maka trigger SQL akan berjalan mengurangi jumlah stok pada tabel barang sesuai dengan qty pada data transaksi yang saya baru tambahkan. Data yang baru saya tambahkan pada tabel transaksi adalah celana dengan qty 5, maka jumlah stok celana yang awalnya berjumlah 20 di tabel barang berkurang 5 menjadi 15.



B. Perintah Trigger Ke 2

1. Perintah Trigger SQL

Perintah kedua trigger SQL yang saya jalankan adalah jika menghapus data transaksi pada tabel transaksi, maka akan menambahkan jumlah stok pada tabel barang sesuai dengan qty data transaksi yang akan di hapus. Tujuan nya yaitu untuk mengembalikan qty data transaksi ke jumlah stok tabel barang.



Berikut adalah hasil dari trigger SQL saat saya menghapus sebuah data transaksi. Perhatikan jumlah stok pada tabel barang sebelum saya menghapus sebuah data transaksi pada tabel transaksi.



Lalu saya menghapus sebuah data transaksi pada tabel transaksi. Maka trigger SQL akan berjalan menambahkan jumlah stok pada tabel barang sesuai dengan qty pada data transaksi yang saya baru hapus. Data yang baru saya hapus pada tabel transaksi adalah celana dengan qty 5, maka jumlah stok celana yang awalnya berjumlah 15 di tabel barang bertambah 5 menjadi 20.


Komentar

Postingan populer dari blog ini

ROUTINES PROCEDURE

TABEL JOIN SQL

REFLEKSI TRIGGER