Thread: copy old column's values to new column

copy old column's values to new column

From
Date:
Hello,

I need some basic SQL help.  I added a new column to an existing table,
and now I need to copy values from one of the old columns to this new
columns.

I need something like this:

FOR pvId IN SELECT id FROM preference_value LOOP       update preference_value SET display_value = (select value from
preference_value where id=pvId) where id=pvId;
END LOOP;

I tried running this from psql, but it didn't work (I suspect FOR can
be used in functions, which I don't know how to write in PG, yet).

Is there a simple way to do this?

Thanks,
Otis



Re: copy old column's values to new column

From
Bruno Wolff III
Date:
On Thu, Sep 02, 2004 at 06:16:47 -0700, ogjunk-pgjedan@yahoo.com wrote:
> Hello,
> 
> I need some basic SQL help.  I added a new column to an existing table,
> and now I need to copy values from one of the old columns to this new
> columns.
> 
> I need something like this:
> 
> FOR pvId IN SELECT id FROM preference_value LOOP
>         update preference_value SET display_value = (select value from
> preference_value where id=pvId) where id=pvId;
> END LOOP;
> 
> I tried running this from psql, but it didn't work (I suspect FOR can
> be used in functions, which I don't know how to write in PG, yet).
> 
> Is there a simple way to do this?

Assuming you are just copying "value" to "display_value", can't you just do:


UPDATE preference_value SET display_value = value;