DELETE(7) SQL Commands DELETE(7)

DELETE - 删除一个表中的行

DELETE FROM [ ONLY ] table [ WHERE condition ]

DELETE 从指明的表里删除满足 WHERE 子句的行。 如果 WHERE 子句不存在, 效果是删除表中所有行。结果是一个有效的空表。

Tip: 提示: TRUNCATE [truncate(7)] 是一个 PostgreSQL 扩展, 它提供一个更快的从表中删除所有行的机制。


缺省时 DELETE 将删除所声明的表和所有它的子表的记录。 如果你希望只更新提到的表,你应该使用 ONLY 子句。


要对表进行删除,你必须对它有 DELETE 权限,同样也必须有 SELECT 的权限,这样才能对符合 condition 的值进行读取操作。


一个现存表的名字(可以有模式修饰)。

一个返回 boolean 类型值的值表达式,它判断哪些行需要被删除。


成功时,DELETE 命令返回形如

DELETE count
的标签。 count 是被删除的行数。 如果 count 为 0,没有行匹配 condition (这个不认为是错误)。


删除所有电影(films)但不删除音乐(musicals):

DELETE FROM films WHERE kind <> 'Musical';


清空表 films:

DELETE FROM films;


这条命令遵循 SQL 标准。

译者

Postgresql 中文网站 何伟平 <laser@pgsqldb.org>

本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh

2003-11-02 SQL - Language Statements