From: | Stefan Schwarzer <stefan(dot)schwarzer(at)unep(dot)org> |
---|---|
To: | Raghavendra <raghavendra(dot)rao(at)enterprisedb(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: How to rename the same column name in dozens of tables in Postgres? |
Date: | 2013-12-17 09:27:19 |
Message-ID: | C5E40C76-59F6-4113-9FB2-09C23B8C3763@unep.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> 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
Thanks so much. I had to add the database user and database name:
psql -U XXX -c "select 'alter table '||table_schema||'.'||table_name||' rename column $OLDCOLUMN to $NEWCOLUMN;' from information_schema.tables where table_schema='gis';" my_database | psql -U XXX my_database
and still run in an error. But it renamed quite a bunch of the tables. So, very good!
Stef
From | Date | Subject | |
---|---|---|---|
Next Message | Tim Kane | 2013-12-17 11:25:06 | Re: pg_stat_tmp |
Previous Message | Raghavendra | 2013-12-17 09:04:59 | Re: How to rename the same column name in dozens of tables in Postgres? |