On Tue, Dec 17, 2013 at 2:23 PM, Raghavendra <
raghavendra....@enterprisedb.com> wrote:

> On Tue, Dec 17, 2013 at 1:29 PM, Stefan Schwarzer <
> stefan.schwar...@unep.org> wrote:
>
>> Hi there,
>>
>> I have dozens of tables where I need to rename one column in each of
>> these. Is there any generic way to do that?
>>
> I am not really familiar with the scripting possibilities of Postgres.
>>
>> Thanks a lot for your help!
>>
>> Stefan
>>
>>
> You can do with script. I made one on fly for this, other's might have
> more polished version.
>
> -bash-4.1$ more rename.sh
> #!/bin/bash
> OLDCOLUMN=aa
> NEWCOLUMN=a
> for i in $(psql -t -c "select table_schema||'.'||table_name from
> information_schema.tables where table_schema='public';")
> do
>   /opt/PostgreSQL/9.3/bin/psql -p 5432 -U postgres -c "alter table $i
> rename column $OLDCOLUMN to $NEWCOLUMN;"
> done
>
> Replace the port,user,OLDCOLUMN, NEWCOLUMN and SCHEMA according to your
> requirement.
>
> One more way from command line

-bash-4.1$ OLDCOLUMN=xyz
-bash-4.1$ NEWCOLUMN=abc
-bash-4.1$ psql -c "select 'alter table '||table_schema||'.'||table_name||'
rename column
$OLDCOLUMN
 to
$NEWCOLUMN
;' from information_schema.tables where table_schema='public';" | psql

--Raghav

Reply via email to