1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
CREATE EXTENSION autoinc;
create sequence aitest_seq increment 10 start 0 minvalue 0;
create table aitest (
price_id int4,
price_val int4,
price_on int4
);
create trigger aiserial
before insert or update on aitest
for each row
execute procedure
autoinc (price_on, aitest_seq);
insert into aitest values (1, 1, null);
insert into aitest values (2, 2, 0);
insert into aitest values (3, 3, 1);
select * from aitest;
price_id | price_val | price_on
----------+-----------+----------
1 | 1 | 10
2 | 2 | 20
3 | 3 | 1
(3 rows)
update aitest set price_on = 11;
select * from aitest;
price_id | price_val | price_on
----------+-----------+----------
1 | 1 | 11
2 | 2 | 11
3 | 3 | 11
(3 rows)
update aitest set price_on = 0;
select * from aitest;
price_id | price_val | price_on
----------+-----------+----------
1 | 1 | 30
2 | 2 | 40
3 | 3 | 50
(3 rows)
update aitest set price_on = null;
select * from aitest;
price_id | price_val | price_on
----------+-----------+----------
1 | 1 | 60
2 | 2 | 70
3 | 3 | 80
(3 rows)
|