Re: Stored Procedure to Delete Rows and Return Count

From: "Jonathan S(dot) Katz" <jonathan(dot)katz(at)excoventures(dot)com>
To: Dave Bolt <dave(at)davebolt(dot)co(dot)uk>
Cc: pgsql-sql(at)lists(dot)postgresql(dot)org
Subject: Re: Stored Procedure to Delete Rows and Return Count
Date: 2018-08-29 21:56:14
Message-ID: 18DFE2AC-5753-454C-B84C-1A99D5095B0C@excoventures.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


> On Aug 29, 2018, at 5:50 PM, Jonathan S. Katz <jonathan(dot)katz(at)excoventures(dot)com> wrote:
>
>>
>> On Aug 29, 2018, at 5:46 PM, Dave Bolt <dave(at)davebolt(dot)co(dot)uk <mailto:dave(at)davebolt(dot)co(dot)uk>> wrote:
>>
>> Can someone give me a clue how this can be done and confirm that their solution has been tested so I know it's my end that has the problem, or better yet tell me what I'm doing wrong.
>
> Being able to use a DELETE in a CTE was introduced in PostgreSQL 9.1.

Borrowing from an old post[1] I made this little function:

CREATE FUNCTION delete_stuff (y int)
RETURNS int
AS $$
DECLARE
deleted int;
BEGIN
DELETE FROM a WHERE x = y;
GET DIAGNOSTICS deleted = ROW_COUNT;
RETURN deleted;
END
$$ LANGUAGE plpgsql;

which returns the total # of rows deleted by the above query, which seems like
it could be adapted for your purposes.

Hope this helps,

Jonathan

[1] https://www.postgresql.org/message-id/20071002204841.GD19690%40alvh.no-ip.org

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message David G. Johnston 2018-08-29 21:56:28 Re: Stored Procedure to Delete Rows and Return Count
Previous Message Jonathan S. Katz 2018-08-29 21:50:29 Re: Stored Procedure to Delete Rows and Return Count