drop trigger lala_trig on favorites;
drop function fav_funct() cascade;
create or replace function fav_funct() returns trigger AS '
declare
old_id int default 0;
new_id int default 0;
rec record;
rec2 record;
rec3 record;
BEGIN
select into rec max(id) as max_id from favorites ;
IF rec.max_id IS NULL THEN new_id :=1;
ELSE new_id = rec.max_id;
END IF;
select into rec2 max(id) as cnt from favorites where id = (select max(id) from favorites);
select into rec3 count(*) as call_cat from call_cat ;
IF rec2.cnt < rec3.call_cat THEN new_id := rec.max_id;
ELSE new_id := rec.max_id +1;
END IF;
insert into favorites (id) values (new_id);
RETURN NEW;
END;
' LANGUAGE 'plpgsql';
create trigger lala_trig before insert on favorites for each row execute procedure fav_funct();
insert into favorites (call_cat_id,details) values (1,'1'); --------------------------- NOTE --------------------------- I know this function sux but i am currently developing :) ----------------------------------------------------------------
test=# insert into favorites (call_cat_id,details) values (1,'1');
server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Failed. !> \q [EMAIL PROTECTED]:~$ psql -l psql: FATAL: the database system is starting up --------- AFTER A WHILE --------- [EMAIL PROTECTED]:~$ psql -l List of databases Name | Owner | Encoding -----------------+----------+------------ my_tests | postgres | ISO_8859_7 template0 | postgres | ISO_8859_7 template1 | postgres | ISO_8859_7 test | postgres | ISO_8859_7
ps the psql version is:
[EMAIL PROTECTED]:~$ psql -V psql (PostgreSQL) 7.4
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match