Re: Bulk Insert / Update / Delete

From: Doug McNaught <doug(at)mcnaught(dot)org>
To: "Philip Boonzaaier" <phil(at)cks(dot)co(dot)za>
Cc: <pgsql-general(at)postgresql(dot)org>
Subject: Re: Bulk Insert / Update / Delete
Date: 2003-08-19 15:23:33
Message-ID: m3ptj1acy2.fsf@varsoon.wireboard.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Philip Boonzaaier" <phil(at)cks(dot)co(dot)za> writes:

> I want to be able to generate SQL statements that will go through a list of
> data, effectively row by row, enquire on the database if this exists in the
> selected table- If it exists, then the colums must be UPDATED, if not, they
> must be INSERTED.
>
> Logically then, I would like to SELECT * FROM <TABLE>
> WHERE ....<Values entered here>, and then IF FOUND
> UPDATE <TABLE> SET .... <Values entered here> ELSE
> INSERT INTO <TABLE> VALUES <Values entered here>
> END IF;
>
> The IF statement gets rejected by the parser. So it would appear that
> PostgreSQL does not support an IF in this type of query, or maybe not at
> all.

Nope. I don't know of an SQL database that does, though I certainly
haven't seen all of them...

> Does anyone have any suggestions as to how I can achieve this ?

Application code that loops through the results of the first query,
and issues UPDATE/INSERT statements as needed? Or you could do it as
a PL/pgSQL function which might be a little faster.

> This message is privileged and confidential and intended for the addressee only. If you are not the intended recipient you may not disclose, copy or
> in any way use or publish the content hereof, which is subject to copyright.If you have received this in error, please destroy the original message
> and contact us at postmaster(at)cks(dot)co(dot)za(dot) Any views expressed in this message
> are those of the individual sender, except where the sender specifically
> states them to be the view of Computerkit Retail Systems, its subsidiaries or
> associates. Please note that the recipient must scan this e-mail and attachments for viruses. We accept no liability of whatever nature for any loss,
> liability,damage or expense resulting directly or indirectly from this transmission
> of this message and/or attachments.

I have companies that force crap like this on mailing list postings...

-Doug

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Doug McNaught 2003-08-19 15:24:30 Re: Bulk Insert / Update / Delete
Previous Message Tom Lane 2003-08-19 15:06:09 Re: Mailing list in French