GBase8s数据库MERGE优化器命令和子查询

您可在 MERGE 关键字之后,可选地指定一个或多个查询优化器命令,诸如访问方法命令、结合

顺序命令和结合方法命令来指定源表与目标表如何结合。在 MERGE 语句中,诸如 EXPLAIN 和

AVOID_EXECUTE 这样的面向目标的命令也有效。

在 MERGE 语句内,子查询还可包括优化器命令来控制该执行计划的其他方面。在 MERGE 语句

中的下列上下文中子查询是有效的:

在 ON 子句的 condition 中

在 Update 子句的 SET 子句中

在 Insert 子句的 VALUES 子句中

在 USING 子句中如果指定源查询,可在 SELECT 语句支持子查询的地方包括任何上下

文中的子查询。

然而,如果包括引用目标表的子查询,则 MERGE 语句失败并报错。

在支持外部命令的数据库中,查询优化器还可对源与目标表的外部结合应用外部命令,或对

MERGE 语句内的子查询。

跟在 ON 关键字之后的 condition 为源和目标表对象指定结合过滤器。 基于目标和源表的外部结

合,此 ON 子句过滤器确定 MERGE 语句中匹配的行和不匹配的行。

如果 MERGE 语句包括 Update 子句,且 ON 子句条件取值为真,则在目标中更新相应

的行。

如果 MERGE 语句包括 Delete 子句,且 ON 子句条件取值为真,则从目标删除相应的

行。

如果 MERGE 语句包括 Insert 子句,且 ON 子句条件取值为假,则将相应的源行插入到

目标内。

对与条件相匹配的行上的 MERGE 语句的 Update 操作,服从该 SET 子句的 UPDATE 语句规

则。要获取在目标表中指定被更新的值的语法的详细信息,请参阅 SET 子句。

对与条件相匹配的行上的 MERGE 语句的 Delete 操作,服从 DELETE 语句规则。要了解从目标

表删除值的详细信息,请参阅 使用 WHERE 关键字指定条件;

对与条件不相匹配的行上的 Insert 操作服从 VALUES 子句的 INSERT 语句规则。要了解将值插

入到目标表中的语法的详细信息,请参阅 VALUES 子句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值