INFO

Call FLUSH after DELETE to persist the changes to storage. This ensures that the changes are committed and visible for subsequent reads.

Syntax

DELETE FROM table_name
WHERE condition
[ RETURNING col_name ];

Parameters

Parameter or clauseDescription
table_nameThe table where you want to remove records.
WHERE conditionSpecify which rows you want to remove using an expression that returns a boolean value. Rows for which this expression returns true will be removed. If you omit the WHERE clause, all rows of records in the table will be deleted but the table structure will be kept.
RETURNINGReturns the values of any column based on each deleted row.

Example

The taxi_trips table has three records:

SELECT * FROM taxi_trips;
 id | distance |    city
----+----------+-------------
  1 |       16 | Yerba Buena
  2 |       23 | New York
  3 |        6 | Chicago
(3 rows)

The following statement removes the record with id 3 from the table. Also, it returns the value of id for the deleted row.

DELETE FROM taxi_trips
WHERE id = 3
RETURNING id;

The following statement removes all rows from the table.

DELETE FROM taxi_trips

Let’s see the result.

SELECT * FROM taxi_trips;
 id | distance | city
----+----------+------
(0 rows)