PostgreSQL update 更新数据

在 PostgreSQL 数据库中,可以使用 update 语句更新表记录,where 子句用于过虑要更新的数据行,如果没有指定 where 子句,则将会更新所有行。

1. update 更新数据语法

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

[ WITH [ RECURSIVE ] with_query [, ...] ]
UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
    SET { column_name = { expression | DEFAULT } |
          ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
          ( column_name [, ...] ) = ( sub-SELECT )
        } [, ...]
    [ FROM from_item [, ...] ]
    [ WHERE condition | WHERE CURRENT OF cursor_name ]
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

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

UPDATE table_name  
SET column1 = value1, column2 = value2...., columnN = valueN  
WHERE [condition];

2. update 使用示例

下面举个例子,创建一张表 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 的记录更新其 name ,从 B 更新为 C,更新之后再次查询,可以看到该记录已更新,如下:

postgres=# update t set name='C' where id = 2;
UPDATE 1
postgres=# select * from t;
 id | name
----+------
  1 | A
  2 | C
(2 rows)

文章评论

0条评论