September 25, 2025: PostgreSQL 18 Released!
Supported Versions: Current (18) / 17 / 16 / 15 / 14 / 13
Development Versions: devel
Unsupported versions: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.
PostgreSQL 7.2.8 Documentation
Prev Next

DELETE

Name

DELETE -- delete rows of a table

Synopsis

DELETE FROM [ ONLY ] table [ WHERE condition ]
 

Inputs

table

The name of an existing table.

condition

This is an SQL selection query which returns the rows which are to be deleted.

Refer to the SELECT statement for further description of the WHERE clause.

Outputs

DELETE count

Message returned if items are successfully deleted. The count is the number of rows deleted.

If count is 0, no rows were deleted.

Description

DELETE removes rows which satisfy the WHERE clause from the specified table.

If the condition (WHERE clause) is absent, the effect is to delete all rows in the table. The result is a valid, but empty table.

Tip: TRUNCATE is a PostgreSQL extension which provides a faster mechanism to remove all rows from a table.

By default DELETE will delete tuples in the table specified and all its sub-tables. If you wish to only update the specific table mentioned, you should use the ONLY clause.

You must have write access to the table in order to modify it, as well as read access to any table whose values are read in the condition.

Usage

Remove all films but musicals:

DELETE FROM films WHERE kind <> 'Musical';
SELECT * FROM films;
 code | title | did | date_prod | kind | len
-------+---------------------------+-----+------------+---------+-------
 UA501 | West Side Story | 105 | 1961年01月03日 | Musical | 02:32
 TC901 | The King and I | 109 | 1956年08月11日 | Musical | 02:13
 WD101 | Bed Knobs and Broomsticks | 111 | | Musical | 01:57
(3 rows)

Clear the table films:

DELETE FROM films;
SELECT * FROM films;
 code | title | did | date_prod | kind | len
------+-------+-----+-----------+------+-----
(0 rows)

Compatibility

SQL92

SQL92 allows a positioned DELETE statement:

DELETE FROM table WHERE
 CURRENT OF cursor
 

where cursor identifies an open cursor. Interactive cursors in PostgreSQL are read-only.


Prev Home Next
DECLARE Up DROP AGGREGATE

AltStyle によって変換されたページ (->オリジナル) /