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