Search Postgresql Archives

Re: psql variable interpolation with subsequent underscore

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/08/2013 08:08 AM, Tim Kane wrote:
Hi all,

I’m having difficulty using variable interpolation within psql, where
that variable is within a table name…


Like so..

=# set YYYYMM 201310
=# select :YYYYMM;
  ?column?
----------
    201309
(1 row)


=# alter table my_table rename to my_table_:YYYYMM_raw;
ERROR:  syntax error at or near ":"
LINE 1: …my_table rename to my_table_:YYYYMM_ra...
                                      ^

The problem is that psql tries to interpret ‘YYYYMM_raw’ as the variable
name, but my intention is to only interpret ‘YYYYMM’ followed by a
literal underscore.

I can’t find any other way to encapsulate the variable name in this way…
  Is there a trick to it?

I suspect I’ll need to work around this by altering the naming
convention such that the YYYYMM is at the ‘end’ of the table name.
  Maybe..   Thoughts?


test=> \set tbl_name 'my_table_':YYYYMM'_raw';

test=> alter table my_table rename to :tbl_name;
ALTER TABLE

test=> \d my_table_201310_raw
Table "public.my_table_201310_raw"
 Column |  Type   | Modifiers
--------+---------+-----------
 id     | integer |


Tim





--
Adrian Klaver
adrian.klaver@xxxxxxxxx


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux