pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
UPDATE — 更新表中的行
UPDATE [ ONLY ]tableSETcolumn= {expression| DEFAULT } [, ...] [ FROMfromlist] [ WHEREcondition]
UPDATE 更改满足条件的所有行中指定 列的值。语句中只需要提及要修改的列;没有显式 SET 的列保留它们先前的值。
默认情况下,UPDATE 将更新指定表及其所有子表中的行。如果只想更新提到的这个特定表,必须使用 ONLY 子句。
要更新表,你必须拥有该表上的 UPDATE 权限, 以及对在 expression 或 condition 中读取其值的任何表的 SELECT 权限。
table要更新的表的名称(可带模式限定)。
columntable 中一个列的名称。
expression赋给该列的表达式。该表达式可以使用该表以及其他列的 旧值。
DEFAULT把该列设置为它的默认值(如果没有给它分配特定的默认表达式, 则为 NULL)。
fromlist一个表表达式的列表,允许来自其他表的列出现在 WHERE 条件和更新表达式中。
condition一个返回 boolean 类型值的表达式。只有该表达式返回 true 的行才会被更新。
成功完成时,UPDATE 命令返回一个形如
UPDATE count
的命令标签。count 是被更新的行数。如果 count 为 0,说明没有行匹配 condition(这不被认为是 错误)。
把表 films 的列 kind 中的单词 Drama 改为 Dramatic:
UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';
在表 weather 的一行中调整温度项并把降水重置为其默认 值:
UPDATE weather SET temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = DEFAULT WHERE city = 'San Francisco' AND date = '2003-07-03';
这个命令符合 SQL 标准。FROM 子句是一种 PostgreSQL 扩展。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。