返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

record 类型的变量
创建一个record 变量的方式:
定义一个record 类型,然后使用该类型来声明一个变量。

执行计划部分主要内容与查询计划一致,同时增加了一些其它属性,如下表:
表5- 143 具体属性如下:
属性
含义
isQueryFinalStep
是否查询步骤的最后一步
DestType
目标类型:1 为所有节点,2 为汇总节点,3 为某个节点
(说明使用该目标表的SQL 全部使用复制表)其它没有
使用
isProducer
是否生产者:0 不是,1 是
isConsumer
是否消费者:0 不是,1 是
producerDistID
生产者ditribution ID
consumerDistID
消费者distribution ID
isSingleHashNode
是否单节点HASH 优化,0 不是,1 是
isHashRedist
是否HASH 重分布步骤,0 不是,1 是
Hash Redist Indexes
HASH 重分布的表达式下标
isGroupHashRedist
未使用
isAllTableAreHashTmpDis
t
是否所有源表都是HASH 重分布临时表。0 不是,1 是
isExistsHashReditTable
是否源表中存在HASH 重分布临时表。0 不是,1 是
queryString
该步骤的SQL
targetTable
目标表
targetSchema
目标表建表语句
[Step] DropList
该步骤执行完后可以删除的临时表列表

不在 WHERE 子句中编写子查询,您可使用 MERGE 语句将来自源表和目标表的行连接
在一起,然后从目标删除与连接条件相匹配的那些行。(Delete MERGE 中的源表还可为
一个集合派生的表,它的行是查询的结果,该查询连接其他的表和视图,但是在下列的示
例中,源是单个表。)
如在前面的示例中那样,
假设您发现 stock 表的某些行包含不正确的制造商代码。
您想要删
除它们以便重新输入它们,而不是更新它们。您可使用 MERGE 语句,指定 stock 作为目
标表,manufact 作为源表,ON 子句中的连接条件,并对于带有不正确的制造商代码
的 stock 行使用 Delete 子句,如下例所示:
MERGE INTO stock USING manufact
ON stock.manu_code != manufact.manu_code
WHEN MATCHED THEN DELETE;
在此示例中,会从 stock 表中删除那些满足 ON 子句中的连接条件的所有行。在此,对于
其中的 manu_code 列值不等于 manufact 中的任何manu_code 值的 stock 的那些行,连接条
件中的不等谓词(stock.manu_code != manufact.manu_code)求值为真。
在 USING 子句中必须罗列正连接到目标表的源表。
MERGE 语句还可更新目标表的行,
或将数据从源表插入到目标表,
根据该行是否满足 ON
子句为连接目标表与源表而指定的条件。单个 MERGE 语句还可同时组合 DELETE 与
INSERT 操作,或者可同时组合 UPDATE 与 INSERT 操作而不删除任何行。MERGE 语

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 164 -
句不更改源表。要获取关于 Delete 合并、Insert 合并和 Update 合并的语法与限制的更多
信息,请参阅《GBase 8s SQL 指南:语法》 中 MERGE 语句的描述。