File: plpgsql_trigger.sql

package info (click to toggle)
libpg-query 17-6.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 32,420 kB
  • sloc: ansic: 171,152; sql: 78,873; ruby: 1,547; makefile: 266; cpp: 221
file content (24 lines) | stat: -rw-r--r-- 635 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- Simple test to verify accessibility of the OLD and NEW trigger variables

create table testtr (a int, b text);

create function testtr_trigger() returns trigger language plpgsql as
$$begin
  raise notice 'tg_op = %', tg_op;
  raise notice 'old(%) = %', old.a, row(old.*);
  raise notice 'new(%) = %', new.a, row(new.*);
  if (tg_op = 'DELETE') then
    return old;
  else
    return new;
  end if;
end$$;

create trigger testtr_trigger before insert or delete or update on testtr
  for each row execute function testtr_trigger();

insert into testtr values (1, 'one'), (2, 'two');

update testtr set a = a + 1;

delete from testtr;