Re: SQL design pattern for a delta trigger?

Steve Atkins <steve@blighty.com>

From: Steve Atkins <steve@blighty.com>
To: pgsql general <pgsql-general@postgresql.org>
Date: 2007-12-07T17:14:26Z
Lists: pgsql-general
On Dec 7, 2007, at 6:29 AM, Ted Byers wrote:

>
> --- Erik Jones <erik@myemma.com> wrote:
>
>>
>> On Dec 6, 2007, at 2:36 PM, Ted Byers wrote:
>>
>> [snip]
>> What you want to do here for handling the update v.
>> insert is called
>> an "UPSERT".  Basically, what you do is run the
>> update as if the row
>> exists and catch the exception that is thrown if it
>> doesn't at which
>> point you insert the record with the end date =
>> now().  After that
>> you can proceed normally with creating the new
>> record with start date
>> = now() and end date = NULL.
>>
> Thanks Eric.  Do you know of an URL where this is
> discussed or where I can find an example.  None of my
> books discuss this, and my search using google has so
> far produced only noise.

http://www.postgresql.org/docs/current/static/plpgsql-control- 
structures.html#PLPGSQL-UPSERT-EXAMPLE might be a good place to start.

Cheers,
   Steve