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
Posting Komentar