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