返回首页

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

更新日期:2024年09月11日

语法格式:
MERGE [INTO] [database_name.]table_name
USING table_reference
ON conditional_exp
[WHEN MATCHED THEN UPDATE SET col_name1=expr1 [, col_name2=expr2] ...
[WHEN NOT MATCHED THEN INSERT [(col_name3,...)] VALUES (expr3,...)]
参数说明如下:
MERGE [INTO] [database_name.]table_name 部分,table_name 必须是表,不可以是
视图,可以使用别名。
USING table_reference 部分,
table_reference 可以是表、
查询或视图,
只允许有一个,
可以使用别名。
UPDATE 部分不支持DELETE 子句。
UPDATE 部分和INSERT 部分不支持WHERE 子句。
UPDATE 部分和INSERT 部分可以省略,但不可以同时省略,否则报语法错误。
UPDATE 部分和INSERT 部分位置不可以颠倒。
INSERT 的VALUES 部分不允许使用MERGE 表
UPDATE 或INSERT 中的列如果出现多次,不会报错,后指定的列生效,但建议不
要依赖于该行为,避免这样使用。
不允许一对多更新:
如果MERGE 表中的一行与USING 表中的多行符合连接条件,
则报错。
示例1:

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 778
gbase> select * from t1 intersect select * from t2;
+------+-------+------------+--------+
| i | vc | d | dc |
+------+-------+------------+--------+
| 30 | third | 2013-09-04 | 11.216 |
+------+-------+------------+--------+

跨引擎DML 语句
GBase UP 支持跨引擎查询。


数据库包含两个大表:cust_calls 和 items。假设这两个表都包含多于 1,000,000 个行。
cust_calls 表提供了客户致电经销商的所有通话记录。items 表包含经销商已发货的每张订
单的行式项目。
数据库包含两个使用率高的表:items 和 orders。这两个表都要经受来自整个国家或地区
的用户的持续访问。
其余的表是低容量表,数据库服务器将使用这些表查询数据,如:邮政编码或制造商。
表名
最大大小
访问率
cust_calls

node (192.168.146.42)
backup table begin