views:

289

answers:

2

Hi, I am looking for a way to return the number of rows affected by a DELETE clause in PostgreSQL. The documentation states that;

On successful completion, a DELETE command returns a command tag of the form

DELETE count

The count is the number of rows deleted. If count is 0, no rows matched the condition (this is not considered an error).

If the DELETE command contains a RETURNING clause, the result will be similar to that of a SELECT statement containing the columns and values defined in the RETURNING list, computed over the row(s) deleted by the command.

But I am having trouble finding a good example of it. Can anyone help me with this, how can I find out how many rows were deleted?


EDIT: I accepted Milen's solution, but I wanted to present an alternative that I have found later. It can be found in here, explained under 38.5.5. Obtaining the Result Status title.

A: 

You need the PQcmdTuples function from libpq. Which in PHP for example is wrapped as pg_affected_rows.

Milen A. Radev
I will be looking into this tomorrow, thanks for the answer
Erkan Haspulat
A: 

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.

cope360