On 1/20/07, Shoaib Mir <shoaibmir@xxxxxxxxx> 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