Re: dynamic table names

From: Thomas Kellerer <spam_eater(at)gmx(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: dynamic table names
Date: 2013-07-17 21:01:41
Message-ID: ks70ms$132$1@ger.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

John Smith wrote on 17.07.2013 22:39:
> guys,
>
> have to use legacy 8.1.
>
> i have 100,000 tables in a schema that need to be queried (optimizing this by combining them into one will have to wait).
>
> so my query goes like so:
>
> > execute 'select * from ' || tabname::regclass || ' where firstname = "john"' into e;
>
> but i am getting an error:
>
> > ERROR: syntax error at or near "'select * from '" at character 9
>
> ? do someone have a stored procedure for this?

"john" is a column name, not a string value. You need to use 'john'
but as that is part of another string literal you need to use two single quotes
(which is something different than one double quote)

execute 'select * from ' || tabname::regclass || ' where firstname = ''john''' into e;

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David Kerr 2013-07-17 21:45:39 Re: About postgres scale out
Previous Message David Johnston 2013-07-17 20:59:10 Re: dynamic table names