Jumat, 29 November 2019
Trigger - PostgreSQL
CREATE TABLE account (
id serial primary key,
name text,
debt int,
balance int
);
CREATE TABLE account_audit(
id serial primary key,
db_user text NOT NULL default session_user,
operation text,
account_id int,
account_name text,
debt int,
balance int,
created_at timestamp with time zone default current_timestamp
);
-------------
CREATE FUNCTION account_audit_func()
RETURNS TRIGGER
AS $$
BEGIN
IF TG_OP = 'INSERT' THEN
INSERT INTO account_audit (operation, account_id, account_name, debt, balance) VALUES
(TG_OP, NEW.*);
RETURN NEW;
ELSIF TG_OP = 'UPDATE' THEN
INSERT INTO account_audit (operation, account_id, account_name, debt, balance) VALUES
(TG_OP, NEW.*);
RETURN NEW;
ELSIF TG_OP = 'DELETE' THEN
INSERT INTO account_audit (operation, account_id, account_name, debt, balance) VALUES
(TG_OP, OLD.*);
RETURN OLD;
END IF;
END;
$$
LANGUAGE plpgsql;
----
CREATE TRIGGER account_audit_trigger
AFTER INSERT OR UPDATE OR DELETE ON account
FOR EACH ROW EXECUTE PROCEDURE account_audit_func();
----
-- ,lastupdate,aksi,hostname,username)
CREATE OR REPLACE FUNCTION zz_mbpr_triger()
RETURNS trigger AS
$BODY$
BEGIN
IF NEW.id_entry <> OLD.id_entry THEN
INSERT INTO zz_mbpr_hist(id,id_entry,bpr,lastupdate,aksi,hostname,username)
VALUES(old.id, OLD.id_entry,OLD.last_name,old.bpr,now(),'UPDATE', HOST,USER);
END IF;
-----
CREATE TRIGGER trg_acc_account_number_UPDATE_DELETE
AFTER UPDATE OR DELETE ON public.acc_account_number
FOR EACH ROW EXECUTE PROCEDURE AuditTable.trg_AuditDML();
Langganan:
Posting Komentar (Atom)
Dynamic Query - SQL Server
Berikut adalah contoh dari bentuk dari Dynamic Query di SQL Server yang dibungkus ke dalam Store Procedure: USE [Data00] GO SET ANSI_NULLS ...
Popular Posts
-
select round(5.123456 , 2) from dual ==> 5.12 select round(5.87654 , 2) from dual ==> 5.88 select floor(5.89) from dual ==> 5 s...
-
round((case when adjpk.nilai_jaminan<>0 then ((tabkredit.baki*100)/(COALESCE(adjpk.nilai_jaminan,0))) els...
-
USE [DATABASENYA] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[SendEmailHardiskSize] as begin ...
Tidak ada komentar:
Posting Komentar