51 lines
1.3 KiB
Plaintext
51 lines
1.3 KiB
Plaintext
|
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)
|
||
|
|