From: Moritz Bayer <moritz.bayer@googlemail.com>
To: pgsql-sql@postgresql.org
Subject: Re: function, that uses different table(names)
Date: Wed, 2 Nov 2005 14:36:06 +0100
Message-ID: <c244500b0511020536t1a124746k@mail.gmail.com> (raw)
In-Reply-To: <c244500b0511020530i713d9748j@mail.gmail.com>
References: <c244500b0511020530i713d9748j@mail.gmail.com>
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.
>
>
>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: moritz.bayer@googlemail.com
Subject: Re: function, that uses different table(names)
In-Reply-To: <c244500b0511020536t1a124746k@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox