Trigger

Nama    : Anan Krisna

NPM      : 19312187

Kelas     : IF 19 D

 

Soal 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 :

Query :

select *from products

select *from log_products


create trigger simpan_orderitems

on orderitems

after insert

as

begin

    declare @id char(5), @jml int

    select @id = prod_id, @jml = quantity

    from inserted


       update  products set stock = stock- @jml where prod_id = @id;

       insert into log_product (prod_id, status_prod) values (@id, 'stock berkurang');

end;


insert into orders values('O0004','2021/03/29','C0004');

insert into orderitems values('O0004','P0002',10);

 

select *from products

select *from log_products

 

 

Screnshoot :

 


Penjelasan :

Untuk membuat trigger menggunakan create trigger (nama), kemudian trigger tersebut  dapat aktif ketika memasukan data di table  orderitems, dengan kode AFTER INSERT.

Kemudian mengdeklarasikan  @id char (5) dan @jml int yang akan di gunakan untuk table inserted table tidak asli, kemudian melakukan pengurangan stock yang ada di dalam table products, dengan penambahan data di dalam  log_products.

Setelah itu melakukan penambahan data di orderitems dengan memperhatikan penamabahan di data di orders yang saling berelasi, menghasilkan pengurangan data dengan memperhatikan prod_id

 

 

Soal 4

buatlah sebuah trigger dengan nama hapus_orderitems, trigger aktif setelah menghapus data yang ada pada tabel orderitems. action pada trigger adalah merubah stock pada tabel products (stock bertambah)

Jawab :

Query :

select *from orderitems

select *from products

select *from log_products


create trigger hapus_orderitems

on orderitems

after delete

as

begin

    declare @id char(5)

    declare @jml int

    select @id = prod_id, @jml = quantity from deleted


    update  products set stock = stock + @jml where prod_id = @id;

   

    insert into log_products(prod_id, status_prod)

    values (@id,'Batal');

end;


select *from orderitems

select *from products

select *from log_products

 

Screnshoot :

 


 

Penjelasan :

Untuk membuat trigger menggunakan create trigger (nama), kemudian trigger tersebut  dapat aktif ketika menghapus data di table  orderitems, dengan kode AFTER DELETE.

Kemudian mengdeklarasikan  @id char (5) dan @jml int yang akan di gunakan untuk table deleted table tidak asli  (kebalikan soal nomor 3), kemudian melakukan pengembalian stock yang ada di dalam table products. Data di dalam  log_products menghasilkan data yang telah di batalkan

 

                               

Komentar

Postingan Populer