Hi,
Thanks a lot for your quick reply and help. The following is what I find
from google. Will it work?
A quicker solution would be to use the pg_dump command
to dump the table, change the needed columns and restore
everything.
pg_dump -c -t <table name> <database> > <dumpfile>
psql <database> < <dumpfile>
Regards,
Chuming
Martin Fandel wrote:
Aehm sorry. ALTER TABLE is not only in PostgreSQL 8 ;). Only the
datatypes can be changed in postgres 8 (right?). I answered to fast.
I'm sorry.
CREATE TABLE newtable ( "bla" varchar(50));
CREATE INDEX/TRIGGER/... (with different names as the production table)
INSERT INTO newtable (select * from production);
ALTER TABLE production RENAME TO old;
ALTER TABLE newtable RENAME TO production;
If this is working correctly, you can drop the old INDEXES and
rename them.
If its not working correctly
ALTER TABLE production RENAME TO new;
ALTER TABLE old RENAME TO production;
and insert the different data (which is in the oldtable) into the
production table.
Greetings,
Martin
Am Dienstag, den 28.06.2005, 17:29 +0200 schrieb Martin Fandel:
Hi
ALTER TABLE is only in PostgreSQL 8. But you can create a new table
with varchar(50) and copy the data from the existing into the new
table. How much relation_size has your table? Do you create the
dbsize-functions which are included in the contrib package?
Best regards,
Martin
Am Dienstag, den 28.06.2005, 10:39 -0400 schrieb Chuming Chen:
Peter Eisentraut wrote:
Chuming Chen wrote:
How can I change the column definition of an existing table, ie. from
varchar(30) to varchar(50)? Is there any way to add a new column to
an existing table?
The ALTER TABLE command can do all that. You need version 8.0 or later
for some functionality though.
Is there another way to do it in 7.* ?
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@xxxxxxxxxxxxxx