From: John DeSoi <desoi@pgedit.com>
To: aarni@kymi.com
Cc: pgsql-sql@postgresql.org
Subject: Re: Copying a row within table
Date: Tue, 14 Mar 2006 20:11:32 -0500
Message-ID: <FEC4E58C-74CA-41B3-AE01-92E13787EBB8@pgedit.com> (raw)
In-Reply-To: <200603140919.49246.aarni@kymi.com>
References: <200603140919.49246.aarni@kymi.com>
On Mar 14, 2006, at 2:19 AM, Aarni Ruuhimäki wrote:
> testing=# INSERT INTO foo (foo_1, foo_2, foo_3 ...) (SELECT foo_1,
> foo_2,
> foo_3 ... FROM message_table WHERE foo_id = 10);
> INSERT 717286 1
> testing=#
>
> Is there a fast way to copy all but not the PK column to a new row
> within the
> same table so that the new foo_id gets its value from the sequence ?
Here is an example using a plpgsql function:
create or replace function test_duplicate (p_id integer)
returns integer as $$
declare
tt test%rowtype;
begin
select into tt * from test where id = p_id;
tt.id := nextval(pg_get_serial_sequence('test', 'id'));
insert into test values (tt.*);
return tt.id;
end;
$$ language plpgsql;
John DeSoi, Ph.D.
http://pgedit.com/
Power Tools for PostgreSQL
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: desoi@pgedit.com, aarni@kymi.com
Subject: Re: Copying a row within table
In-Reply-To: <FEC4E58C-74CA-41B3-AE01-92E13787EBB8@pgedit.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox