pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
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




view thread (4+ messages)  latest in thread

Message-ID: <FEC4E58C-74CA-41B3-AE01-92E13787EBB8@pgedit.com>
Permalink:  ../FEC4E58C-74CA-41B3-AE01-92E13787EBB8@pgedit.com/
Also on:    postgresql.org/message-id/FEC4E58C-74CA-41B3-AE01-92E13787EBB8@pgedit.com

 · 

reply

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