Re: Alter definition of a column

From: "Kelly Burkhart" <kelly(dot)burkhart(at)gmail(dot)com>
To: "Shoaib Mir" <shoaibmir(at)gmail(dot)com>
Cc: "Martijn van Oosterhout" <kleptog(at)svana(dot)org>, af300wsm(at)gmail(dot)com, pgsql-general(at)postgresql(dot)org
Subject: Re: Alter definition of a column
Date: 2007-01-20 17:19:50
Message-ID: fa1e4ce70701200919h2217e1e2pc140deb21b9c81@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 1/20/07, Shoaib Mir <shoaibmir(at)gmail(dot)com> wrote:
> Should help --> ALTER TABLE tablename ALTER columname TYPE text;

I was looking for a way to alter a column from varchar(n) to text
without using the alter command and consequently touching every single
row. Below is sql which seems to work, but is it advisable to do such
shenanigans? (are varchar and text the same thing)?

kelly=# create table foo( c1 varchar(4) not null, c2 text not null );
CREATE TABLE
kelly=#
kelly=# update pg_attribute set atttypid=25, atttypmod=-1
kelly-# where attname = 'c1' and attrelid =
kelly-# (select oid from pg_class where relname = 'foo');
UPDATE 1
kelly=#
kelly=# \d foo
Table "public.foo"
Column | Type | Modifiers
--------+------+-----------
c1 | text | not null
c2 | text | not null

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ron Johnson 2007-01-20 19:05:42 Re: Help : Microsoft SQL Server equivalents in
Previous Message Tom Lane 2007-01-20 17:11:00 Re: Help : Microsoft SQL Server equivalents in