Saturday, March 8, 2014

membuat trigger di Postgre SQL

A.    Materi Trigger
Membuat tabel log

rb1=# create table log (process varchar(10), date date);
CREATE TABLE
rb1=# \d log
             Table "public.log"
 Column  |         Type          | Modifiers
---------+-----------------------+-----------
 process | character varying(10) |
 date    | date  


a.       Trigger insert data di table product
Pertama buka text editor gedit
Kemudian ketikan sintak sql di dalamnya, sintaknya adalah sebagai berikut :

create or replace function ins_product() returns trigger as $$
begin insert into log values('insert',now());
return new;
end $$
language plpgsql;
create trigger ins_data after insert on product for each row execute procedure ins_product();

Kemdian simpan dengan nama ins_product.sql
Kemudian  jalankan fungsi triggernya dengan langkah masuk ke dalam postgresql dan ketikan perintah :

\i /home/administrator/Desktop/namafolder/ins_product.sql
CREATE FUNCTION
CREATE TRIGGER

b.      Trigger update data di table product
Langkah seperti sebelumnya
Kemudian ketik :

create or replace function up_product() returns trigger as $$
begin
insert into log values ('update',now());
return new;
end $$
language plpgsql;
create trigger up_data after update on product for each row execute procedure up_product();

Kemudian simpan dengan nama up_product.sql
Kemudian  jalankan fungsi triggernya dengan langkah masuk ke dalam postgresql dan ketikan perintah :

\i /home/administrator/Desktop/namafolder/up_product.sql
CREATE FUNCTION
CREATE TRIGGER

c.       Trigger delete data di table product
Langkah seperti sebelumnya
Kemudian ketik :

create or replace function del_product() returns trigger as $$
begin
insert into log values('delete',now());
return new;
end $$
language plpgsql;
create trigger del_data after delete on product for each row execute procedure del_product();

Kemudian simpan dengan nama del_product.sql
Kemudian  jalankan fungsi triggernya dengan langkah masuk ke dalam postgresql dan ketikan perintah :

\i /home/administrator/Desktop/namafolder/del_product.sql
CREATE FUNCTION
CREATE TRIGGER

kemudian jalankan perintah insert,update atau delete;
insert into product values ('001','samsung galaxy pocket');
INSERT 0 1

lihat tabel log;
rb1=# select*from log;                                                            
 process |    date   
---------+------------
 insert  | 2013-10-23

(1 row)