How to get the number of deleted rows in PostgreSQL? How to get the number of deleted rows in PostgreSQL? postgresql postgresql

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