X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id ADA7A3A4CDB for ; Sat, 20 Nov 2004 09:25:29 +0000 (GMT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 74849-06 for ; Sat, 20 Nov 2004 09:25:23 +0000 (GMT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.185]) by svr1.postgresql.org (Postfix) with ESMTP id 98BBF3A4CAD for ; Sat, 20 Nov 2004 09:24:50 +0000 (GMT) Received: from [212.227.126.206] (helo=mrelayng.kundenserver.de) by moutng.kundenserver.de with esmtp (Exim 3.35 #1) id 1CVRU7-0006mF-00; Sat, 20 Nov 2004 10:24:47 +0100 Received: from [80.131.207.81] (helo=goofy.thiele.lan) by mrelayng.kundenserver.de with asmtp (Exim 3.35 #1) id 1CVRU7-0007qL-00; Sat, 20 Nov 2004 10:24:48 +0100 Date: Sat, 20 Nov 2004 10:24:46 +0100 From: Erik Thiele To: "Passynkov, Vadim" Cc: pgsql-sql@postgresql.org Subject: Re: get sequence value of insert command Message-Id: <20041120102446.4a887124.erik@thiele-hydraulik.de> In-Reply-To: References: Organization: Thiele-Hydraulik X-Mailer: Sylpheed version 0.9.12 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Provags-ID: kundenserver.de abuse@kundenserver.de auth:323d4a9045def897d7bf2e2f3ae17486 X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.0 tagged_above=0.0 required=5.0 tests= X-Spam-Level: X-Archive-Number: 200411/210 X-Sequence-Number: 19529 On Fri, 19 Nov 2004 10:57:12 -0500 "Passynkov, Vadim" wrote: > > -----Original Message----- > > From: Erik Thiele [mailto:erik@thiele-hydraulik.de] > > Sent: Friday, November 19, 2004 3:42 AM > > To: pgsql-sql@postgresql.org > > Subject: [SQL] get sequence value of insert command > > > > create sequence mysequence; > > > > create table foo( > > id integer default nextval('mysequence'), > > bla text, > > wombat integer, > > foobar date, > > primary key(id) > > ); > > > > insert into foo (wombat) values (88); > > > > now how do i know the id of my newly inserted element? and > > how can this be done in a completely concurrency safe way? > > CREATE RULE get_pkey_on_insert AS ON INSERT TO foo DO SELECT > currval('mysequence') AS id LIMIT 1; now that one is really great! you should definitly add it to the faq. plus an additional explanation why the limit 1 is needed here. thanks! erik