Skip to main content

DELETE

使用 DELETE 命令从表中永久删除行。

info

DELETE 后调用 FLUSH 来将更改持久化到存储中。这确保更改被提交并对后续读取可见。

句法

DELETE FROM table_name
WHERE condition
[ RETURNING col_name ];

参数

参数或子句描述
table_name要删除数据的表。
WHERE condition使用返回布尔值的表达式指定要删除的行。返回 true 的行将被删除。
如果省略 WHERE 子句,则将删除表中所有数据的行,但保留表结构。
RETURNING基于已删除行返回任意列的值。

示例

taxi_trips 表有三条数据:

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

以下语句可从表中删除 id 为 3 的数据。同时,返回删除行的 id 值。

DELETE FROM taxi_trips 
WHERE id = 3
RETURNING id;

以下语句可从表中删除所有行。

DELETE FROM taxi_trips 

让我们看看结果。

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