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
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 |