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