From: | Steve Baldwin <steve(dot)baldwin(at)gmail(dot)com> |
---|---|
To: | David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> |
Cc: | pgsql-novice <pgsql-novice(at)postgresql(dot)org> |
Subject: | Re: Query plan when using currval |
Date: | 2018-05-09 22:32:01 |
Message-ID: | CAKE1Aia6vBGWdkFngyoWu3xH-mZPU4AmP5W5mG0Ws_pV7n_QFQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
Thanks Tom and David. My current logic flow was to do an insert and then a
bit later, and update the same row. The update was using 'where id =
currval(...)' and was getting slower and slower as the table grew (surprise
surprise). I realise I can solve my performance issue in a couple of ways,
but I think I'm going to refactor it and try to avoid the update.
I really appreciate the insight.
Steve
On Thu, May 10, 2018 at 8:22 AM, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>
wrote:
> On 9 May 2018 at 18:24, Steve Baldwin <steve(dot)baldwin(at)gmail(dot)com> wrote:
> > bcaas=> explain analyze select id from log_statement where id = (select
> currval('log_statement_id_seq'));
>
> I know Tom has answered your question, but you may be interested in
> INSERT RETURNING as this will save you from having to do this to
> lookup the ID of the last inserted sequence value.
>
> https://www.postgresql.org/docs/10/static/sql-insert.html
>
> --
> David Rowley http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Training & Services
>
From | Date | Subject | |
---|---|---|---|
Next Message | Steve Baldwin | 2018-05-16 01:01:06 | Trigger firing order |
Previous Message | David Rowley | 2018-05-09 22:22:04 | Re: Query plan when using currval |