Re: psql variable interpolation with subsequent underscore
От | Adrian Klaver |
---|---|
Тема | Re: psql variable interpolation with subsequent underscore |
Дата | |
Msg-id | 527D1591.8030308@gmail.com обсуждение исходный текст |
Ответ на | psql variable interpolation with subsequent underscore (Tim Kane <tim.kane@gmail.com>) |
Ответы |
Re: psql variable interpolation with subsequent underscore
|
Список | pgsql-general |
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@gmail.com
В списке pgsql-general по дате отправления: