Re: How to insert record only if primary key does not exist

From: Craig Ringer <ringerc(at)ringerc(dot)id(dot)au>
To: Andrus <kobruleht2(at)hot(dot)ee>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: How to insert record only if primary key does not exist
Date: 2012-07-01 14:19:08
Message-ID: 4FF05C5C.2070204@ringerc.id.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 06/30/2012 09:02 PM, Andrus wrote:
> Table is defined as
> CREATE TABLE firma1.klient (
> kood character(12) NOT NULL DEFAULT
> nextval('firma1.klient_kood_seq'::regclass),
> ....
> );
> How to insert record to this table only if primary key does not exist ?

You want an operation that's called an UPSERT or MERGE operation.
PostgreSQL doesn't have any native support to do this for you. Doing it
right is surprisingly tricky. This is the best article I've seen on the
topic:

http://www.depesz.com/2012/06/10/why-is-upsert-so-complicated/

--
Craig Ringer

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Chris Angelico 2012-07-01 15:09:50 Re: How to insert record only if primary key does not exist
Previous Message AI Rumman 2012-07-01 08:33:03 is there any query so that I may find the list of columns those have rules?