TRIGGER - Pertemuan 11

Nama : Anggun Maylani

NPM : 19312154

Kelas : IF 19 D

Mata Kuliah : Pemrograman Basis Data

Universitas : https://teknokrat.ac.id/  

Fakultas : https://ftik.teknokrat.ac.id


TRIGGER

Trigger dalam database adalah kode prosedural yang secara otomatis dijalankan untuk menanggapi perubahan tertentu pada table tertentu atau tampilan dalam database. Trigger dapat didefinisikan untuk menjalankan penrintah sebelum atau setelah eksekusi DML (Data Manipulation Language) seperti INSERT, UPDATE, dan DELETE. Trigger banyak digunakan untuk menjaga integritas informasi pada database.

1. Buatlah trigger dengan nama simpan_produk, yang aktif pada saat ada penambahan data di tabel products. action -> menyimpan data ke dalam tabel log_products dengan status "added".

Jawab :

Kode query simpan_produk :

Hasil query :






Penjelasan : Untuk membuat sebuah trigger, dapat dengan menuliskan "create trigger <Nama_Trigger>".  Trigger akan aktif ketika kita memasukkan data ke dalam table products, untuk mengetahui akan aktif saat kita memasukkan data, jawabannya terletak pada after insert (trigger dijalankan sesudah record dimasukkan ke database). Kemudian kita mendeklarasikan sebuah variabel id yang akan diberikan nilai berdasarkan table inserted (tidak berdasarkan tabel aslinya), selanjutnya terdapat query untuk menambah data yang ada di dalam table products, dan menambahkan data added ke dalam tabel log_products ketika trigger dijalankan.

2. Buatlah trigger dengan nama hapus_produk, yang aktif pada saat ada penghapusan data di tabel products. menyimpan data ke dalam tabel log_products dengan status “deleted".

Jawab :

Kode query hapus_produk :







Hasil query sebelum dihapus :







Hasil query setelah dihapus :






Penjelasan : Untuk membuat sebuah trigger, dapat dengan menuliskan "create trigger <Nama_Trigger>".  Trigger akan aktif ketika kita memasukkan data ke dalam table products, untuk mengetahui akan aktif saat kita memasukkan data, jawabannya terletak pada after delete. Kemudian kita mendeklarasikan sebuah variabel id yang akan diberikan nilai berdasarkan table deleted (tidak berdasarkan tabel aslinya), selanjutnya terdapat query untuk menambah data yang ada di dalam table products, dan menambahkan data deleted ke dalam tabel log_products ketika trigger dijalankan.

3. Buatlah sebuah trigger dengan nama simpan_orderitems, trigger aktif setelah menyimpan data ke dalam tabel orderitems. action pada trigger adalah merubah stock pada tabel products (stock berkurang).

Jawab :

Kode query simpan_products :

Hasil query sebelum data stok dikurangi :

 



Hasil query sebelum table log_product ditambah :
Kode query penambahan data :


Hasil query penambahan data :


Hasil query table products terbaru :


Hasil query log_products terbaru :


Penjelasan : Untuk membuat sebuah trigger, dapat dengan menuliskan "create trigger <Nama_Trigger>".  Trigger akan aktif ketika kita memasukkan data ke dalam table orderitems, untuk mengetahui akan aktif saat kita memasukkan data, jawabannya terletak pada after insert (trigger dijalankan sesudah record dimasukkan ke database). Kemudian kita mendeklarasikan sebuah variabel id dan totalbeli yang akan diberikan nilai berdasarkan table inserted (tidak berdasarkan tabel aslinya), selanjutnya terdapat query untuk mengurangi stok yang ada di dalam table products, dan menambahkan log penjualan ke dalam tabel log_products ketika trigger dijalankan.
4. Buatlah sebuah trigger dengan nama hapus_orderitems, trigger aktif setelah menghapus data yang ada pada table orderitems. Action pada trigger adalah merubah stok pada table products(stok bertambah).
Jawab :
Kode query hapus_orderitems :


Hasil query hapus_orderitems :

Penjelasan : Sama halnya seperti soal 3, hanya saja soal 4 menggunakan after delete  Kemudian kita mendeklarasikan sebuah variabel id dan cancelbeli  (kebalikan dari soal 3) yang akan diberikan nilai berdasarkan table deleted (tidak berdasarkan tabel aslinya), selanjutnya terdapat query untuk menambahkan stok yang ada di dalam table products, dan menambahkan log cancel beli ke dalam tabel log_products ketika trigger dijalankan.





















 


Komentar