How to get the number of deleted rows in PostgreSQL?
You can use RETURNING
clause:
DELETE FROM table WHERE condition IS TRUE RETURNING *;
After that you just have to check number of rows returned. You can streamline it with CTE:
WITH deleted AS (DELETE FROM table WHERE condition IS TRUE RETURNING *) SELECT count(*) FROM deleted;
This should return just the number of deleted rows.
This should be simple in Java.
Statement stmt = connection.createStatement();int rowsAffected = stmt.executeUpdate("delete from your_table");System.out.println("deleted: " + rowsAffected);
See java.sql.Statement.
GET DIAGNOSTICS is used to display number of modified/deleted records.
Sample code
CREATE OR REPLACE FUNCTION fnName() RETURNS void AS$BODY$ declare count numeric; begin count := 0; LOOP -- condition here update or delete; GET DIAGNOSTICS count = ROW_COUNT; raise notice 'Value: %', count; end loop; end;$BODY$a