使用 UPDATE 语句来更改表或视图中一个或多个现有的行的一个或多个列中的值。
随同 GBase 8s ,您还可使用此语句来更改在 GBase 8s ESQL/C 或 SPL 集合变量或 ROW 变量中一个或多个元素的值。
要获取关于如何更新集合变量的元素的信息,请参阅 集合派生表。在此 UPDATE 语句的描述中接下来的部分描述如何更新表中的行。
您必须或拥有该表,或对该表有 Update 权限。请参阅 GRANT 语句。要更新视图中的数据,您必须有 Update 权限,且该视图必须满足 通过视图更新行 中说明的要求。
UPDATE 语句的目标不可为 CREATE EXTERNAL TABLE 语句定义了的表对象。
游标(如 DECLARE 语句的 SELECT ... FOR UPDATE 部分中定义的那样)可仅包含列名称。如果您省略 WHERE 子句,则更新目标表的所有行。
如果您正在使用有效的检查,且检查模式设置为 IMMEDIATE,则在每一 UPDATE 语句的结尾处检查所有启用的约束。如果检查模式设置为 DEFERRED,则直到提交事务才检查所有启用的约束。
在 DB-Access 中,如果您省略 WHERE 子句,且处于交互的模式中,则 DB-Access 不运行 UPDATE 语句,直到您确认您想要更改所有行为止。然而,如果该语句在命令文件中,且您在在命令行运行,则立即执行该语句。
CREATE VIEW cust_view AS SELECT * FROM customer; UPDATE cust_view SET customer_num=10001 WHERE customer_num=101;