Re: [SQL] alter help needed

From: Herouth Maoz <herouth(at)oumail(dot)openu(dot)ac(dot)il>
To: "Frank Morton" <fmorton(at)base2inc(dot)com>
Cc: pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [SQL] alter help needed
Date: 1998-11-29 10:44:34
Message-ID: l03110704b286d4cc3239@[147.233.159.109]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

At 7:43 +0200 on 29/11/98, Frank Morton wrote:

> As an example, given a table with 2 columns, if I want to add
> a new column "between" the already existing columns, is there
> any way to use "alter table" to do this?
>
> The only way I can figure out how to do this and preserve the
> data is to dump the database and write a script to modify
> the dump by modifying the table structure plus the insert
> statements reflecting the change. This seems more painful
> and I must be missing an easier way to do this.

Yes. Create the desired table, with the proper order and everything, and
then insert the values from the other table. For example, if your old table
is defined:

num1 - int4
txt1 - text
num2 - int4

And you want to make it efficient by moving the text to the end, rename it
to some other, temporary name. Then define

CREATE TABLE my_table (
num1 int4,
num2 int4,
txt1 text );

Now do:

INSERT INTO my_table (num1, num2, txt1)
SELECT num1, num2, txt1
FROM my_renamed_table;

After that, drop the renamed table, and you are done.

Herouth

--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message PETER PAULY 1998-11-29 15:29:47 Odd characters in inserted data...
Previous Message Frank Morton 1998-11-29 05:43:49 alter help needed