Re: Best possible way to insert and get returned ids

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Jason Dictos <jdictos(at)barracuda(dot)com>
Cc: "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Best possible way to insert and get returned ids
Date: 2009-11-25 14:40:00
Message-ID: 603c8f070911250640u6cfdd734k1b9bfad6c086080@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Mon, Nov 23, 2009 at 3:53 PM, Jason Dictos <jdictos(at)barracuda(dot)com> wrote:
> Is an INSERT command with a SELECT statement in the RETURNING * parameter
> faster than say an INSERT and then a SELECT? Does the RETURNING * parameter
> simply amount to a normal SELECT command on the added rows? We need to
> basically insert a lot of rows as fast as possible, and get the ids that
> were added.  The number of rows we are inserting is dynamic and is not of
> fixed length.

With INSERT ... RETURNING, you only make one trip to the heap, so I
would expect it to be faster. Plus, of course, it means you don't
have to worry about writing a WHERE clause that can identify the
row(s) you just added. It sounds like the right tool for your use
case.

...Robert

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Kevin Kempter 2009-11-25 15:22:01 Re: How exactly does Analyze work?
Previous Message Richard Neill 2009-11-25 12:34:26 How exactly does Analyze work?