Re: function, that uses different table(names)

From: Moritz Bayer <moritz(dot)bayer(at)googlemail(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: function, that uses different table(names)
Date: 2005-11-02 13:36:06
Message-ID: c244500b0511020536t1a124746k@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Sorry, pushed the send - button by accident. So here is the right text:

CREATE OR REPLACE function getmaxuserid(integer) RETURNS integer AS'
DECLARE live_table varchar(100);
DECLARE i_return integer;
BEGIN
live_table := ''tbl_highscore_app'' || cast($1 as varchar);
SELECT i_return = max(userid) FROM ''tbl_highscore_app'' || cast($1 as
varchar);
return(i_return);
END;
'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

My parser tells me that this is not possible.
Does anybody has an advice, how to fix my problem? I don't want to write
this function 28 times for 28 different tables...

Thanx in advance,
Moritz

Hello group,
>
> I've a bunch of tables, which have just about the same name. They are just
> iterated like this:
>
> tbl_table1
> tbl_table2
> tbl_table3
> ...
>
> They all have the same field, but different data.
>
> Now I'm wondering, if I have to write functions for every table, although
> they perform the same operation?
> Or is it possible to pass an integer parameter to the function, use it to
> put the right tablename together and perform the operation.
>
> This would something look like this:
>
> CREATE OR REPLACE function getmaxuserid(integer) RETURNS integer AS'
> DECLARE tmp_tmp_tmp_table varchar(100);
> DECLARE tmp_table varchar(100);
> DECLARE tmp_tmp_table varchar(100);
> DECLARE live_table varchar(100);
> DECLARE i_return integer;
> BEGIN
> --live_table := ''tbl_highscore_app'' || cast($1 as varchar);
> SELECT max(userid) FROM ''tbl_highscore_app'' || cast($1 as varchar);
>
>
>
> return(0);
> END;
> 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
>
>
> I don't know if this is good practise, but I'm trying to create a function
> which gets an integer.
>
>
>

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message A. Kretschmer 2005-11-02 13:38:52 Re: function, that uses different table(names)
Previous Message Moritz Bayer 2005-11-02 13:30:38 function, that uses different table(names)