pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Michael Fuhr <mike@fuhr.org>
To: KÖPFERL Robert <robert.koepferl@sonorys.at>
Cc: pgsql-sql@postgresql.org
Subject: Re: Returning a bool on DELETE in a proc.
Date: Tue, 18 Jan 2005 11:52:02 -0700
Message-ID: <20050118185202.GA39033@winnie.fuhr.org> (raw)
In-Reply-To: <ED4E30DD9C43D5118DFB00508BBBA76EB16564@neptun.sonorys.at>
References: <ED4E30DD9C43D5118DFB00508BBBA76EB16564@neptun.sonorys.at>

On Tue, Jan 18, 2005 at 05:04:58PM +0100, KÖPFERL Robert wrote:

> I'm currently writing a function which encapsulates a delete and should
> return a bool as indicator for success.

How do you define success?  When the delete affects one or more rows?

>      DELETE FROM "TariffDetails" WHERE "TariffId"=$1 and "BNumberPrefix"=$2;
>      SELECT TRUE;
> 
> but this makes me not happy.
> How can I distingruish wehter DELETE affected 0 or more rows and return that
> while DELETE is not capable of returning any value?

If you're using PL/pgSQL then see "Obtaining the Result Status" in
the "Basic Statements" section of the PL/pgSQL documentation.

> And is the whole function executed if the DELETE fails or will it stop
> bevore the select?

A PL/pgSQL function should exit immediately with an error if the
DELETE fails.  But understand that PL/pgSQL's notion of a failure
might not match yours: trying to delete from a non-existent table
is a failure, but deleting zero rows from an existing table isn't.

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/



view thread (8+ messages)  latest in thread

Message-ID: <20050118185202.GA39033@winnie.fuhr.org>
Permalink:  ../20050118185202.GA39033@winnie.fuhr.org/
Also on:    postgresql.org/message-id/20050118185202.GA39033@winnie.fuhr.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: mike@fuhr.org, robert.koepferl@sonorys.at
  Subject: Re: Returning a bool on DELETE in a proc.
  In-Reply-To: <20050118185202.GA39033@winnie.fuhr.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox