返回首页

gbase数据、南大通用产品文档:GBase8s选择要更新的行

更新日期:2024年09月11日

UPDATE 语句的任一形式都可以确定修改那些行的 WHERE 子句结尾。如果您省略
WHERE 子句,
则修改所有行。
要选择在 WHERE 子句中需要更改的精确行集可能非常复
杂。对 WHERE 子句的唯一限制是,不可在子查询的 FROM 子句中命名您更新的表。
UPDATE 语句的第一种形式是,使用一系列赋值子句来指定新的列值,如下例所示:

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 171 -

UPDATE customer
SET fname = 'Barnaby', lname = 'Dorfler'
WHERE customer_num = 103;
WHERE 子句选择您想要更新的行。在演示数据库中,customer.customer_num 列是那个表
的主键,因此,此语句最多可更新一行。
您还可在 WHERE 子句中使用子查询。
假设 Anza 公司对他们的网球发出安全召回。
结果
是,包括来自制造商 ANZ 的库存编号 6 的任何未装运的订单都必须设定为延期交货,如
下例所示:
UPDATE orders
SET backlog = 'y'
WHERE ship_date IS NULL
AND order_num IN
(SELECT DISTINCT items.order_num FROM items
WHERE items.stock_num = 6
AND items.manu_code = 'ANZ');
此子查询返回一订单编号(零个或多个)的列。然后,该 UPDATE 操作针对该列表测
试 orders 的每一行,如果那一行相匹配,则执行更新。

存储在数据源上的一列数据有一个 SQL 数据类型。
GBase 8s ODBC Driver 将特定于 GBase 8s 的 SQL 数据类型映射为以 ODBC SQL 语法
定义的 ODBC SQL 数据类型。(驱动程序通过 SQLGetTypeInfo 返回这些映射。它还使

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 11 -
用 ODBC SQL 数据类型来描述 SQLColAttributes 和 SQLDescribeCol 中的列和参数的数
据类型)。
每一 SQL 数据类型对应于一个 ODBC C 数据类型。在缺省情况下,
驱动程序假设存储位
置的 C 数据类型对应于该位置绑定至其的列或参数的 SQL 数据类型。
如果存储位置的 C
数据类型不是缺省的 C 数据类型,则应用程序可以使用 SQLBindCol 的 TargetType、
SQLGetData 的 fCType 参数,
以及 SQLBindParameter 中的 ValueType 参数来指定正确的
C 数据类型。在驱动程序从数据源返回数据之前,它将数据转换为指定的 C 数据类型。
在驱动程序将数据发送至数据源之前,
它将数据从指定的 C 数据类型转换为 SQL 数据类
型。
GBase 8s 数据类型名称不同于 Microsoft™ ODBC 数据类型名称。要获取关于这些差异的
信息,请参阅《GBase 8s ODBC Driver 程序员指南》。

PG_REPLICATION_ORIGIN 系统表包含所有已创建的复制源,该表为全局共享表,即
在每个节点上只有一份pg_replication_origin,而不是每个数据库一份。
名称
类型
描述
roident
oid
一个集群范围内唯一的复制
源标识符。
roname
text
外部的由用户定义的复制源
名称。