Functions and Variables.
От | Steffers |
---|---|
Тема | Functions and Variables. |
Дата | |
Msg-id | 20000523211601.4210E1F57C@chronozon.dyndns.org обсуждение исходный текст |
Список | pgsql-sql |
Hello,First let me congratulate everyone on Postgres 7. It is (functionality wise) MUCH richer than Sybase 12. I am in the midst of porting across an old (well. oldish) web database application to Postgres from Sybase, and in everything apart from Speed Postgres wins (then again, that is probably why Sybase wins out. It doesnt have any 'nice' features. gah!). the problem arises when I tried to translate a relatively simple trigger from Sybase to Postgres. The Sybase code looks like this : create trigger upd_client_hist on client for insert asdeclare @historyid integerdeclare @inserted_client_id varchar(16)declare @inserted_date_id datetime select @inserted_client_id=CLIENT_ID from insertedselect @inserted_date_id=CHANGE_DATE from insertedselect @historyid=max(history_id)+1from client where CLIENT_ID=@inserted_client_id update client set history_id=@historyidwhereCLIENT_ID=@inserted_client_idand CHANGE_DATE=@inserted_date_id go (the go at the end jst executes the creation process). I looked through all the documentation on Postgres and decided to make it into a function. However, since this is a function I wanted to make the function 'generic' to a degree. so i tried this: CREATE FUNCTION upd_history_no_location(text,varchar(16)) RETURNS integer AS 'SELECT max(history_id)+1 FROM $1 where CLIENT_ID=CAST($2 as varchar(16));' LANGUAGE 'sql'; and that jst plain doesnt compile. i have tried and installed the plpgsql language as well on the database, but it doesnt seem to help any either. I plan on tying this into a trigger on INSERT (there is no update allowed on the table). I cant use an autoincremental field, as i need each new 'client_id' to start off with a history of 1, and keep its own 'unique history field'. its a historical database tied into a client workorder schema. Any help ? does this make sense even ;D many thanks, Stefs
В списке pgsql-sql по дате отправления: