Skip site navigation (1) Skip section navigation (2)

ALTER TABLE - ALTER COLUMN question

From: Keaton Adams <kadams(at)mxlogic(dot)com>
To: pgsql-admin(at)postgresql(dot)org
Subject: ALTER TABLE - ALTER COLUMN question
Date: 2007-05-29 20:42:13
Message-ID: 1180471333.19986.13.camel@MXLRMT-208.corp.mxlogic.com (view raw or flat)
Thread:
Lists: pgsql-admin
When I issue an alter table ..... alter column command, the table
contents are copied from the old structure to the new, correct?  So I
need 2x the table space available so the old and new tables can exist at
the same time?  PostgreSQL doesn't use an in-place alter-table for these
types of changes, correct?  

In this example the created and msg_datetime columns are currently
defined as TIMESTAMP WITHOUT TIME ZONE and no default.  If the alter
table for these changes is not in-place then I would want to run it as a
single alter with all of the changes, such as this, instead of
individual alters for each change, correct?  (Because each individual
alter would require another table copy?)

ALTER TABLE my_table ALTER COLUMN created TYPE TIMESTAMP WITH TIME
ZONE, 
  ALTER COLUMN created SET DEFAULT   ('now'::text)::TIMESTAMP(6) WITH
TIME ZONE, 
  ALTER COLUMN msg_datetime TYPE TIMESTAMP WITH TIME ZONE, 
  ALTER COLUMN msg_datetime SET DEFAULT ('now'::text)::TIMESTAMP(6) WITH
TIME ZONE;

Thanks,

Keaton



Responses

pgsql-admin by date

Next:From: Tom LaneDate: 2007-05-29 21:16:59
Subject: Re: ALTER TABLE - ALTER COLUMN question
Previous:From: Marsha RamseyDate: 2007-05-29 20:03:44
Subject: Re: Grant SELECT on all tables of a database

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group