13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

创新互联OceanBase教程:OceanBase INSERT

INSERT 算子用于将指定的数据插入数据表,数据来源包括直接指定的值和子查询的结果。

OceanBase 数据库支持的 INSERT 算子包括 INSERT 和 MULTI PARTITION INSERT。

INSERT

INSERT 算子用于向数据表的单个分区中插入数据。

如下例所示,Q1 查询将值 (1, '100') 插入到非分区表 t1 中。其中 1 号算子 EXPRESSION 用来生成常量表达式的值。


obclient>CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 VARCHAR2(10));
Query OK, 0 rows affected (0.12 sec)

obclient>CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 VARCHAR2(10)) PARTITION BY 
             HASH(c1) PARTITIONS 10;
Query OK, 0 rows affected (0.12 sec)

obclient>CREATE TABLE t3 (c1 INT PRIMARY KEY, c2 VARCHAR2(10));
Query OK, 0 rows affected (0.12 sec)

obclient>CREATE INDEX IDX_t3_c2 ON t3 (c2) PARTITION BY HASH(c2) PARTITIONS 3;
Query OK, 0 rows affected (0.12 sec)

Q1: 
obclient>EXPLAIN INSERT INTO t1 VALUES (1, '100')\G;
*************************** 1. row ***************************
Query Plan:
====================================
|ID|OPERATOR   |NAME|EST. ROWS|COST|
------------------------------------
|0 |INSERT     |    |1        |1   |
|1 | EXPRESSION|    |1        |1   |
====================================

Outputs & filters:
-------------------------------------
  0 - output([__values.C1], [__values.C2]), filter(nil),
      columns([{T1: ({T1: (T1.C1, T1.C2)})}]), partitions(p0)
  1 - output([__values.C1], [__values.C2]), filter(nil)
      values({1, '100'})

上述示例中,执行计划展示中的 outputs & filters 详细列出了 INSERT 算子的输出信息如下:

output

该算子输出的表达式。

filter

该算子上的过滤条件。

由于示例中 INSERT 算子没有设置 filter,所以为 nil。

columns

插入操作涉及的数据表的列。

partitions

插入操作涉及到的数据表的分区(非分区表可以认为是一个只有一个分区的分区表)。

信息名称

含义

更多 INSERT 算子的示例如下:

MULTI PARTITION INSERT

MULTI PARTITION INSERT 算子用于向数据表的多个分区中插入数据。

如下例所示,Q5 查询将值(2, '200')、(3, '300')插入到分区表 t2 中,通过 partitions 可以看出,这些值会被插入到 t2 的 p0 和 p6 分区。


Q5: 
obclient>EXPLAIN INSERT INTO t2 VALUES (2, '200'),(3, '300')\G;
*************************** 1. row ***************************
Query Plan:
===============================================
|ID|OPERATOR              |NAME|EST. ROWS|COST|
-----------------------------------------------
|0 |MULTI PARTITION INSERT|    |2        |1   |
|1 | EXPRESSION           |    |2        |1   |
===============================================

Outputs & filters:
-------------------------------------
  0 - output([__values.C1], [__values.C2]), filter(nil),
      columns([{T2: ({T2: (T2.C1, T2.C2)})}]), partitions(p0, p6)
  1 - output([__values.C1], [__values.C2]), filter(nil)
      values({2, '200'}, {3, '300'})

上述示例的执行计划展示中的 outputs & filters 详细列出了 MULTI PARTITION INSERT 算子的信息,字段的含义与 INSERT 算子相同。

更多 MULTI PARTITION INSERT 算子的示例如下:


标题名称:创新互联OceanBase教程:OceanBase INSERT
文章链接:http://cdbrznjsb.com/article/djedijh.html

其他资讯

让你的专属顾问为你服务