↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 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 / 7.0 / 6.5 / 6.4
历史版本。 PostgreSQL 6.4 已结束支持。 请参阅 当前版本手册.

DELETE

DELETE — 删除一个表中的行

大纲

DELETE FROM table [ WHERE condition ]
  

输入

table

一个已存在表的名称。

condition

这是一个 SQL 选择查询,它返回要删除的行。

关于 WHERE 子句的进一步描述请参考 SELECT 语句。

输出

→ DELETE count

成功删除了项时返回的消息。count 是删除的行数。

如果 count 为 0,表示没有行被删除。

描述

DELETE 从指定表中删除满足 WHERE condition的行。

如果省略 condition,则删除表中的所有行。结果是一个有效但为空的表。

要修改一个表,你必须拥有对它的写权限,同时对condition中读取其值的任何表拥有读权限。

用法

删除除音乐剧外的所有电影:

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)
  

清空表 films:

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

兼容性

SQL92

SQL92允许定位式 DELETE 语句:

DELETE FROM table WHERE
    CURRENT OF cursor
    

其中 cursor 标识一个已打开的游标。Postgres中的交互式游标是只读的。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.