Re: Inserting or Deleting conditionally

From: Richard Huxton <dev(at)archonet(dot)com>
To: KÖPFERL Robert <robert(dot)koepferl(at)sonorys(dot)at>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Inserting or Deleting conditionally
Date: 2005-01-17 16:02:46
Message-ID: 41EBE1A6.6050208@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

KÖPFERL Robert wrote:
> Hi,
>
> coming from imperative programming paradigma, I'm currently trying to
> express something like that in _SQL_:

SQL is not an imperative language - each SQL statement is an expression
to be evaluated.

> It should be atomic and like an API for a user. I'm therefore writing
> functions:
>
> CRETE FUNC...
>
> c := SELECT x,y,z FROM table_a WHERE...
> IF COUNT(c)=1 then
> INSERT / DELETE ... WHERE x = c.x
> ENDIF

Even if this was valid syntax, you've just made your query N times more
expensive. Try something like:
INSERT ... WHERE x IN (SELECT x FROM table_a WHERE ...)
or similar.

> How is this correctly formulated? Or is there no other way than PL/xxx?

Sounds like you want a middle-ware layer to provide an API for your
applications. Plenty of options, but it's difficult for people to make
suggestions without knowing more about your situation.
--
Richard Huxton
Archonet Ltd

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Yudie 2005-01-17 18:44:20 query configuration for validate empty quote to zero
Previous Message KÖPFERL Robert 2005-01-17 15:25:59 Inserting or Deleting conditionally