云数据库 GAUSSDB-INSERT ALL:参数说明
参数说明
- plan_hint子句
以/*+ */的形式在INSERT关键字后,目前仅适配了语法格式,并未实现具体功能。
- ALL/FIRST
如果不带条件子句(WHEN condition THEN),此关键字不可省略,且只能为ALL。如果含有条件子句,此关键字可以省略,默认为ALL,此时ALL和FIRST的含义分别为:
- ALL:遍历所有匹配条件的分支,只要满足条件就会将数据插入对应的表。
- FIRST:查询到第一个满足条件的分支后,将数据插入该分支对应的表,不再继续检查剩余分支。
- WHEN condition THEN
插入表时的条件判断,只有满足条件才会进行插入操作,condition中可以引用子查询(SUBQUERY)中的列。
- table_name
要插入数据的目标表名。
取值范围:已存在的表名。
- alias_name
INSERT语句不包含AS alias语法时的表别名。
- INTO子句不包含AS alias语法时的表别名不能为关键字(如SELECT、VALUE)或者表达式,表别名要求符合标识符命名规范。
- INTO子句不包含AS alias语法时的表别名不支持INTO table_name alias_name(alias_name.col1,...,alias_name.coln) VALUES(xxx);的语法格式。
- INTO子句的分区表不包含AS alias语法时的表别名不支持指定分区插入操作。
- partition_clause
指定分区插入操作。
PARTITION { ( partition_name ) | FOR ( partition_value [, ...] ) } | SUBPARTITION { ( subpartition_name ) | FOR ( subpartition_value [, ...] ) }
关键字具体信息请参见SELECT。
如果VALUE子句的值和指定分区不一致,结果会提示异常。
- column_name
目标表中的字段名称。
- 字段名可以有子字段名或者数组下标修饰。
- 没有在字段列表中出现的每个字段,将由系统默认值或者声明时的默认值进行填充,若无默认值或未声明时则使用NULL填充。例如,向一个复合类型中的某些字段插入数据,其他字段使用NULL进行填充。
- 目标字段(column_name)按顺序排列。如果没有列出任何字段,则默认全部字段,且顺序为表声明时的顺序。
- 如果VALUE子句和QUERY中只提供了N个字段,则目标字段为前N个字段。
- VALUE子句和QUERY提供的值在表中从左到右关联到对应列。
取值范围:已存在的字段名。
- VALUES
不可跟多行。
- expression
赋予对应column的一个有效表达式或值。
- 向表中字段插入单引号(')时需要使用单引号对自身进行转义。
- 如果插入行的表达式不是正确的数据类型,系统将自动进行类型转换,若转换失败,则插入数据失败,系统返回错误信息。
- 不支持聚集函数。
- 不支持子查询。
- DEFAULT
对应字段名的缺省值。如果没有缺省值,则为NULL。
- subquery
一个查询语句(SELECT语句),将查询结果作为插入的数据,不可省略,如果没有子查询可以使用SELECT * FROM DUAL。
如果子查询带表别名,不可在CONDITION子句和INTO子句中引用该别名。