TRIGGER - Tugas Pertemuan 11
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
Komentar
Posting Komentar