Thread: How can I change type of column

How can I change type of column

From
mlists
Date:
Can I change type of column with alter table command?

For instance if I have a table t1 and column c1 which is defined as
decimal(18, 2) and I want to change it into decimal(18, 3) in MS SQL
server I can write:

alter table t1 alter column c1 decimal(18, 3)

Is there something similar in PostgreSQL? Tnx in advance.

Dragan




Re: How can I change type of column

From
Bruno Wolff III
Date:
On Wed, Mar 31, 2004 at 17:36:12 +0200,
  mlists <mlists@panforma.co.yu> wrote:
> Can I change type of column with alter table command?
>
> For instance if I have a table t1 and column c1 which is defined as
> decimal(18, 2) and I want to change it into decimal(18, 3) in MS SQL
> server I can write:
>
> alter table t1 alter column c1 decimal(18, 3)
>
> Is there something similar in PostgreSQL? Tnx in advance.

Not yet.
You can do this in several commands in a single transaction in recent versions
of postgres. You can do an add, update, drop and rename to affect the same
change.
In this case you might be able to do the change by updating the catalog
tables directly, but I don't know exactly what you would need to do.
Unless your table is huge it probably isn't worth doing it that way.

Re: How can I change type of column

From
"Karl O. Pinc"
Date:
On 2004.03.31 09:36 mlists wrote:
> Can I change type of column with alter table command?
>
> For instance if I have a table t1 and column c1 which is defined as
> decimal(18, 2) and I want to change it into decimal(18, 3) in MS SQL
> server I can write:
>
> alter table t1 alter column c1 decimal(18, 3)
>
> Is there something similar in PostgreSQL? Tnx in advance.

Not that I know of.  You either have to add a new column,
copy the data with UPDATE, drop the old column, and then alter the new
column to disallow NULL if necessary or you have to
do a pg_dump on the table and drop and re-create the table.
The latter if you've scripts or whatever relying on the
'order' of the columns as returned with SELECT * type
statements.

Karl <kop@meme.com>
Free Software:  "You don't pay back, you pay forward."
                  -- Robert A. Heinlein