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)