From: | Patrick B <patrickbakerbr(at)gmail(dot)com> |
---|---|
To: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | PLPGSQL returning number of rows |
Date: | 2016-11-11 00:44:09 |
Message-ID: | CAJNY3it+bP1QEYhxPkhms6RTv4Na7ERPfQjJSimV8g4OrGQ5cQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi guys,
I'm writing a simple Plpgsql function to delete some data from different
tables.
The function starts with a select, and then 2 deletes after that.
How can I return the number of rows that each delete performed?
CREATE or REPLACE FUNCTION delete_ids_clientid(account_id integer)
RETURNS integer AS $$
declare
row record;
account_id integer;
BEGIN
FOR row IN EXECUTE '
SELECT
t1.id
FROM
public.table2 t2
JOIN
public.table1 t1 ON t2.id = t1.id
WHERE
t2.account_id = ' || account_id || ''
LOOP
DELETE FROM public.table1 WHERE id IN
(
SELECT
id
FROM
public.table1 t1
WHERE
t1.id = row.id
);
DELETE FROM public.table2 WHERE billable_id IN
(
SELECT
billable_id
FROM
public.table2 t1
WHERE
t1.id = row.id
);
END LOOP;
END
$$ language 'plpgsql';
Cheers
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2016-11-11 00:57:52 | Re: PLPGSQL returning number of rows |
Previous Message | Tom Lane | 2016-11-10 20:58:31 | Re: Gin indexes on intarray is fast when value in array does not exists, and slow, when value exists |