返回介绍

下载

编译与部署

开始使用

操作手册

最佳实践

扩展功能

设计文档

SQL 手册

开发者手册

Apache 社区

INSERT

发布于 2021-09-30 01:42:49 字数 6510 浏览 1267 评论 0 收藏 0

description

Syntax

INSERT INTO table_name
    [ PARTITION (p1, ...) ]
    [ WITH LABEL label]
    [ (column [, ...]) ]
    [ [ hint [, ...] ] ]
    { VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }

Parameters

tablet_name: 导入数据的目的表。可以是 db_name.table_name 形式

partitions: 指定待导入的分区,必须是 table_name 中存在的分区,多个分区名称用逗号分隔

label: 为 Insert 任务指定一个 label

column_name: 指定的目的列,必须是 table_name 中存在的列

expression: 需要赋值给某个列的对应表达式

DEFAULT: 让对应列使用默认值

query: 一个普通查询,查询的结果会写入到目标中

hint: 用于指示 INSERT 执行行为的一些指示符。streaming 和 默认的非 streaming 方式均会使用同步方式完成 INSERT 语句执行 非 streaming 方式在执行完成后会返回一个 label 方便用户通过 SHOW LOAD 查询导入的状态

Note

当前执行 INSERT 语句时,对于有不符合目标表格式的数据,默认的行为是过滤,比如字符串超长等。但是对于有要求数据不能够被过滤的业务场景,可以通过设置会话变量 enable_insert_stricttrue 来确保当有数据被过滤掉的时候,INSERT 不会被执行成功。

example

test 表包含两个列c1, c2

  1. test表中导入一行数据
INSERT INTO test VALUES (1, 2);
INSERT INTO test (c1, c2) VALUES (1, 2);
INSERT INTO test (c1, c2) VALUES (1, DEFAULT);
INSERT INTO test (c1) VALUES (1);

其中第一条、第二条语句是一样的效果。在不指定目标列时,使用表中的列顺序来作为默认的目标列。 第三条、第四条语句表达的意思是一样的,使用c2列的默认值,来完成数据导入。

  1. test表中一次性导入多行数据
INSERT INTO test VALUES (1, 2), (3, 2 + 2);
INSERT INTO test (c1, c2) VALUES (1, 2), (3, 2 * 2);
INSERT INTO test (c1) VALUES (1), (3);
INSERT INTO test (c1, c2) VALUES (1, DEFAULT), (3, DEFAULT);

其中第一条、第二条语句效果一样,向test表中一次性导入两条数据 第三条、第四条语句效果已知,使用c2列的默认值向test表中导入两条数据

  1. test 表中导入一个查询语句结果
INSERT INTO test SELECT * FROM test2;
INSERT INTO test (c1, c2) SELECT * from test2;
  1. test 表中导入一个查询语句结果,并指定 partition 和 label
INSERT INTO test PARTITION(p1, p2) WITH LABEL `label1` SELECT * FROM test2;
INSERT INTO test WITH LABEL `label1` (c1, c2) SELECT * from test2;

异步的导入其实是,一个同步的导入封装成了异步。填写 streaming 和不填写的执行效率是一样的。

由于Doris之前的导入方式都是异步导入方式,为了兼容旧有的使用习惯,不加 streaming 的 INSERT 语句依旧会返回一个 label,用户需要通过SHOW LOAD命令查看此label导入作业的状态。

keyword

INSERT

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文