Your original question says that the function returns the number of rows deleted. That's one line. Now you're saying that it returns one row per table-row deleted. Which is it?
On 7/7/20 7:21 PM, Wells Oliver wrote:
ha, the CTE approach to only get one line of output versus however many hundreds of rows were used for the delete is perfect. Thanks.
On Tuesday, July 7, 2020, Wells Oliver <wells.oliver@gmail.com> wrote:
Vanilla SQL script calls a plpgsql function to delete some number of rows from three tables:
SELECT mydelete(r) FROM sometable;
Where sometable contains maybe 100+ records. This causes the results from the function (integer of number of rows removed) to be displayed in the output, like you'd kinda expect with a SELECT call, except I don't want to see it all, I just want the function quietly executed and rows removed.
Can I accomplish this?
Pure SQL, no, you cannot just ignore the output. You can perform post-processing (via CTE/WITH) to reduce how much is printed (aggregates). If you are using psql you can send it to /dev/null. You could use a DO block and (kinda) ignore the result (SQL) and/or stick it into a throw-away variable (plpgsql).
David J.
--
--
Angular momentum makes the world go 'round.