From: | John DeSoi <desoi(at)pgedit(dot)com> |
---|---|
To: | aarni(at)kymi(dot)com |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Copying a row within table |
Date: | 2006-03-15 01:11:32 |
Message-ID: | FEC4E58C-74CA-41B3-AE01-92E13787EBB8@pgedit.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Aarni Ruuhimäki | 2006-03-15 08:35:27 | Re: Copying a row within table |
Previous Message | Alvaro Herrera | 2006-03-14 23:11:18 | Re: Savepoint/Rollback in functions |