数据仓库服务 GAUSSDB(DWS)-MERGE INTO:参数说明
参数说明
- plan_hint子句
以/*+ */的形式在关键字后,用于对指定语句块生成的计划进行hint调优,详细用法请参见使用Plan Hint进行调优。
- INTO子句
指定正在更新或插入的目标表。
- table_name
目标表的表名。
- partition_clause
用来指定目标表分区的子句。该参数9.1.0及以上集群版本支持。
只有当目标表是分区表时可以指定分区。
指定的分区名需要是目标表已存在的分区或者指定的分区键值所处的分区已存在。
- alias
目标表的别名。
取值范围:字符串,符合标识符命名规范。
- table_name
- USING子句
指定源表,源表可以为表、视图或子查询。
- partition_clause
用来指定源表分区的子句。该参数9.1.0及以上集群版本支持。
只有当源表是分区表时可以指定分区,视图或者子查询不支持指定分区。
指定的分区名需要是源表已存在的分区或者指定的分区键值所处的分区已存在。
- alias
目标表的别名。
取值范围:字符串,符合标识符命名规范。
- partition_clause
- ON子句
关联条件,用于指定目标表和源表的关联条件。不支持更新关联条件中的字段。ON关联条件可以是ctid,xc_node_id,tableoid这三个系统列。
- WHEN MATCHED子句
当源表和目标表中数据针对关联条件可以匹配上时,选择WHEN MATCHED子句进行UPDATE操作。
不支持更新分布列。不支持更新系统表、系统列。
当指定目标表的分区时,若UPDATE目标表的分区键导致分区变化:
- 目标表是列存表时,会报错“The inserted partition key is not mapped to the specified 'partition_name' partition”。
- 目标表是行存表时:
- 若目标表的表属性为ENABLE ROW MOVEMENT,则不会报错,更新的数据会属于新分区。
- 若目标表的表属性为DISABLE ROW MOVEMENT,会报错“fail to update partitioned table 'table_name' ”。
- WHEN NOT MATCHED子句
当源表和目标表中数据针对关联条件无法匹配时,选择WHEN NOT MATCHED子句进行INSERT操作。
不支持INSERT子句中包含多个VALUES。
WHEN MATCHED和WHEN NOT MATCHED子句顺序可以交换,可以缺省其中一个,但不能同时缺省,不支持同时指定两个WHEN MATCHED或WHEN NOT MATCHED子句。
当指定目标表的分区时,若INSERT了超出该分区范围的数据,会报错“The inserted partition key is not mapped to the specified 'partition_name' partition”。
- DEFAULT
用对应字段的缺省值填充该字段。
如果没有缺省值,则为NULL。
- WHERE condition
UPDATE子句和INSERT子句的条件,只有在条件满足时才进行更新操作,可缺省。不支持WHERE条件中引用系统列。
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控
- 如何进行日志采集和转储_日志平台_日志接入_日志转储
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓