Thread: Need to change the size of a field
Hi I have a table with one of the fields as a varchar(32) field. This table has about 100,000 records. I want to increase the size of the varchar field to 64. How can this be done without affecting the data already present ? Thanx in advance. regards suresh
I don't think you can alter a column in the current version, but here's an example of a workaround that should do the job: create table change_me (id int, text varchar(20)); [Then I add some data & decide I need to widen the text field without losing the data.] create table temp_change_me as select * from change_me; drop table change_me; create table change_me (id int, text varchar(50)); insert into change_me (id, text) (select id, text from temp_change_me); drop table temp_change_me; hth, Nick > -----Original Message----- > From: pgsql-sql-owner@postgresql.org > [mailto:pgsql-sql-owner@postgresql.org]On Behalf Of suresh@mithi.com > Sent: Monday, February 18, 2002 8:31 AM > To: pgsql-sql@postgresql.org > Subject: [SQL] Need to change the size of a field > > > Hi > > I have a table with one of the fields as a varchar(32) field. > This table has > about 100,000 records. > I want to increase the size of the varchar field to 64. How can > this be done > without affecting the data already present ? > Thanx in advance. > regards > suresh > > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org >
suresh This is pretty simple.... Just do a pg_dump of the of the database, edit the text file, and reimport the new definitions. something like dg_dump 'targetdb' > outputfile This is the same thing you are doing to backup your data. : ) Next open the outputfile in a text editor. Notice that you have all the create table directives. Edit the value in the definition area and save the file. drop the original database. then reimport the dump file (you will first have to createdb because you dropped it remember). That's it. Your pg_dump files are your friends. Ted -----Original Message----- From: <suresh@mithi.com> To: <pgsql-sql@postgresql.org> Date: Mon, 18 Feb 2002 19:00:49 +0530 Subject: [SQL] Need to change the size of a field > Hi > > I have a table with one of the fields as a varchar(32) field. This > table has > about 100,000 records. > I want to increase the size of the varchar field to 64. How can this be > done > without affecting the data already present ? > Thanx in advance. > regards > suresh > > > > ---------------------------(end of > broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org
On Mon, 18 Feb 2002 suresh@mithi.com wrote: > Hi > > I have a table with one of the fields as a varchar(32) field. This table has > about 100,000 records. > I want to increase the size of the varchar field to 64. How can this be done > without affecting the data already present ? Dump and restore after changing the field length is usually easiest, but if you don't mind a little hacking in the system tables, check out the archives and you'll find the particular recipe for doing it.