语法 DELETE FROM table [ WHERE condition ] 输入 table 现存的表名. condition 这是一个 SQL 选择查询,它返回被选取的行.
请参考 SELECT 语句获取关于 WHERE 子句的更多信息.
输出 DELETE count 如果行被成功的删除返回此信息.count 是要被删除的行数.
如果 count 为 0,没有行被删除.
描述 DELETE 从指明的表里删除满足 WHERE condition (条件)的行. 如果 condition (WHERE 子句)不存在,效果是删除表中所有行.结果是一个有效的空表.
小技巧: TRUNCATE 是一个 Postgres 扩展,它提供一个更快的从表中删除所有行的机制。 要对表进行修改,你必须有写权限,同样也必须有读表的权限,这样才能对符合 condition (条件)的值进行读取操作. 用法 删除所有电影(films)但不删除音乐(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) 清空表 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 里交互式游标是只读的.