Advertisement
Guest User

mirror codeshare/2B47kb

a guest
Nov 19th, 2019
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.57 KB | None | 0 0
  1. -- Untuk Menampilkan Database Object
  2. SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TRIGGER'
  3.  
  4. SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE IN ('FUNCTION','PROCEDURE','PACKAGE');
  5.  
  6. SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE IN ('TRIGGER') AND OWNER = 'JTK';
  7.  
  8. -- Untuk Membuat User Baru (Otomatis Membuat Schema Baru)
  9. CREATE USER jtk
  10.   IDENTIFIED BY jtkway;
  11.  
  12. GRANT CONNECT, RESOURCE, DBA TO jtk;
  13.  
  14. -- Untuk Menampilkan Schema
  15. SELECT username AS schema_name
  16. FROM sys.dba_users
  17. ORDER BY username;
  18.  
  19. --- SIMULASI TRIGGER
  20. CREATE TABLE produk (
  21.     id_produk NUMERIC NOT NULL,
  22.     produk VARCHAR2(20) NOT NULL,
  23.     stok NUMERIC,
  24.     satuan VARCHAR2(20),
  25.     CONSTRAINT produk_pk PRIMARY KEY (id_produk)
  26. );
  27.  
  28. CREATE TABLE pesanan (
  29.     id_pesanan NUMERIC NOT NULL,
  30.     id_produk NUMERIC NOT NULL,
  31.     jumlah NUMERIC NOT NULL,
  32.     tgl_pesanan DATE,
  33.     CONSTRAINT pesanan_pk PRIMARY KEY (id_pesanan)
  34. );
  35.  
  36. INSERT INTO produk VALUES (1, 'Pocky', 25, 'pcs');
  37. INSERT INTO produk VALUES (2, 'Nescafe', 15, 'pcs');
  38. INSERT INTO produk VALUES (3, 'Chitato', 10, 'pcs');
  39. INSERT INTO produk VALUES (4, 'Makaroni', 5, 'box');
  40.  
  41. CREATE OR REPLACE TRIGGER trg_update_stok
  42. AFTER INSERT OR DELETE OR UPDATE ON pesanan
  43. FOR EACH ROW
  44. BEGIN
  45.    IF INSERTING THEN
  46.     UPDATE produk SET stok = (stok - :NEW.jumlah) WHERE id_produk = :NEW.id_produk;
  47.    ELSIF DELETING THEN
  48.     UPDATE produk SET stok = (stok + :OLD.jumlah) WHERE id_produk = :OLD.id_produk;
  49.    ELSIF UPDATING THEN
  50.     UPDATE produk SET stok = ((stok + :OLD.jumlah) - :NEW.jumlah) WHERE id_produk = :OLD.id_produk;
  51.    END IF;
  52. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement