PostgreSQL delete 删除数据

在 PostgreSQL 数据库中,可以使用 delete 语句删除表记录,where 子句用于过虑要删除的数据记录。如果没有指定 where 子句,则将会删除所有行。如果想要删除一个表的所有数据,建议使用 truncate table 语句,而不是不加 where 条件的 delete 语句。

1. delete 删除数据语法

下面是 delete 语句的完整语法:

[ WITH [ RECURSIVE ] with_query [, ...] ]
DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ]
    [ USING from_item [, ...] ]
    [ WHERE condition | WHERE CURRENT OF cursor_name ]
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

delete 完整语法各类很多,也很复杂,在日常工作中只需掌握 delete 基本语法即可,如下:

DELETE FROM table_name  
WHERE [condition];

2. delete 使用示例

下面举个例子,创建一张表 t,包含 2 个字段 id 和 name,并插入两条记录,如下:

postgres=# create table t(id int, name text);
CREATE TABLE
postgres=# insert into t values(1,'A'),(2,'B');
INSERT 0 2
postgres=# select * from t;
 id | name
----+------
  1 | A
  2 | B
(2 rows)

将 id 为 2 的记录删除,删除之后再次查询,可以看到该记录已删除,如下:

postgres=# delete from t where id = 2;
DELETE 1
postgres=# select * from t;
 id | name
----+------
  1 | A
(1 row)

文章评论

0条评论