TRIGGER - Tugas Pertemuan 11

Nama : Kurnia Ramadhan
NPM : 19312185
Kelas : IF 19 D

TRIGGER

--membuat tabel log_products--

CREATE TABLE log_products (

prod_id CHAR(5) NOT NULL,

status_prod VARCHAR(10) NOT NULL,

status_date DATETIME DEFAULT GETDATE()

);


--menambahkan data ke dalam tabel log_products--

INSERT INTO log_products(prod_id, status_prod) VALUES

('P0001','added')


--menampilkan log_products--

select * from log_products






--SOAL NO 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".


--membuat trigger simpan_produk--

create trigger simpan_produk

 on products

 after insert

 as

begin

declare @id char(5)

select @id = prod_id from inserted


insert into log_products (prod_id, status_prod)

values (@id, 'added')

end;


--simpan data product--

insert into products

values('P0015','Speaker Simbadda',450000,100,'V0003');


--menampilkan products--

select * from products


--menampilkan log_products--

select * from log_products










--SOAL NO 2--

buatlah trigger dengan nama hapus_produk, yang aktif pada saat ada penghapusan data di tabel products.

action -> menyimpan data ke dalam tabel log_products dengan status "added".


--membuat trigger hapus_produk--

create trigger hapus_produk

 on products

 after delete

 as

begin

declare @id char(5)

select @id = prod_id from deleted


insert into log_products (prod_id, status_prod)

values (@id, 'deleted')

end;


--hapus data products--

delete from products where prod_id = 'P0006';


--menampilkan products--

select * from products


--menampilkan log_products--

select * from log_products











--SOAL NO 3--

buatlah 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).


--membuat trigger simpan_orderitems--

CREATE TRIGGER simpan_orderitems

ON orderitems

AFTER INSERT

AS

BEGIN

declare 

@jumlah int, @prod_id char(5)

select @jumlah = quantity,

@prod_id = prod_id from inserted

update products set stock =

stock - @jumlah

where stock = @prod_id; 

INSERT INTO log_products (prod_id, status_prod) VALUES(@prod_id, 'Berkurang');

END;


--menyimpan data kedalam tabel orderitems--

INSERT INTO orderitems VALUES ('O0003','P0015',50)


--menampilkan log_products, orderitems, dan products--

select * from log_products

select * from orderitems

select * from products

























--SOAL NO 4--
buatlah 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).

--membuat trigger hapus_orderitems--
CREATE TRIGGER hapus_orderitems
ON orderitems
AFTER DELETE
AS
BEGIN
DECLARE @prod_id CHAR(5),
@jumlah INT
SELECT @prod_id = prod_id, 
@jumlah = quantity FROM deleted

UPDATE products SET stock = stock + @jumlah WHERE prod_id = @prod_id;
INSERT INTO log_products (prod_id, status_prod) VALUES (@prod_id , 'Cancel');
END;

--menghapus data dari tabel orderitems--
DELETE FROM orderitems WHERE order_num = 'O0003'

--menampilkan log_products, orderitems, dan products--
select * from log_products
select * from orderitems
select * from products




Komentar

Postingan populer dari blog ini

LANGKAH-LANGKAH YANG PERLU DI LAKUKAN DALAM MENGAMANKAN SISTEM KOMPUTER ATAU LAPTOP

ALGORITMA DIVIDE AND CONQUER PADA SORTING DAN SEARCHING

Strategi Pengujian Perangkat Lunak