pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
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.
>
>
>

view thread (6+ messages)  latest in thread

Message-ID: <c244500b0511020536t1a124746k@mail.gmail.com>
Permalink:  ../c244500b0511020536t1a124746k@mail.gmail.com/
Also on:    postgresql.org/message-id/c244500b0511020536t1a124746k@mail.gmail.com

 · 

reply

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