pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Daryl Richter <daryl@brandywine.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: automatic update or insert
Date: Tue, 25 Oct 2005 10:38:43 -0400
Message-ID: <435E4373.7060607@brandywine.com> (raw)
In-Reply-To: <1129790184.351579.302550@g47g2000cwa.googlegroups.com>
References: <1129790184.351579.302550@g47g2000cwa.googlegroups.com>

tobbe wrote:
> Hi.
> 
> I have a little problem.
> 
> In a system of mine i need to insert records into table [tbStat], and
> if the records exist i need to update them instead and increase a
> column [cQuantity] for every update.
> 
> I.e. the first insert sets cQuantity to 1, and for every other run
> cQuantity is increased.
> 

Regardless of how you implemented it, this seems unwise.  You can never 
know, nor validate, that this quantity is definitely correct.  Why can't 
you just insert another row and then count them?

If this is a transient value you might be ok, but I generally wouldn't 
put it in a DB in that case anyway...

> Currently i have implemented this as a stored procedure in the plpgsql
> language. This means that in my stored procedure i first do a select to
> find out if the row exists or not, then i do a insert or update
> depending if the row existed.
> 
> Unfortunately, stored procedures seems awfully slow. And i need the
> application to go faster.
> 
> One solution could be to implement the stored procedure in my program
> instead. I think that this will be atleast 50% faster than my stored
> procedure, so that would be ok.
> 
> However, this has made me thinking. Couldn't this be done directly in
> SQL?
> 
> 
> Brgds Robert
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
> 
>                http://www.postgresql.org/docs/faq

-- 
Daryl Richter
Platform Author & Director of Technology

((         Brandywine Asset Management          )
  ( "Expanding the Science of Global Investing"  )
  (          http://www.brandywine.com           ))




view thread (6+ messages)  latest in thread

Message-ID: <435E4373.7060607@brandywine.com>
Permalink:  ../435E4373.7060607@brandywine.com/
Also on:    postgresql.org/message-id/435E4373.7060607@brandywine.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: daryl@brandywine.com
  Subject: Re: automatic update or insert
  In-Reply-To: <435E4373.7060607@brandywine.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