云数据库 GAUSSDB-INSERT ALL:参数说明

时间:2024-12-13 17:15:47

参数说明

  • 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语法时的表别名。

    1. INTO子句不包含AS alias语法时的表别名不能为关键字(如SELECT、VALUE)或者表达式,表别名要求符合标识符命名规范
    2. INTO子句不包含AS alias语法时的表别名不支持INTO table_name alias_name(alias_name.col1,...,alias_name.coln) VALUES(xxx);的语法格式。
    3. 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子句中引用该别名。

support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1748.html