INSERT
描述
该语句用于向表中添加一个或多个记录。
使用限制及注意事项
不支持直接对子查询进行插入操作,例如 INSERT INTO (SELECT * FROM t1) VALUES(1, 1)。
权限要求
- 执行
INSERT语句,需要拥有目标表的INSERT权限。 - 执行
INSERT ... SELECT ...语句,不仅需要拥有目标表的INSERT权限,还需要拥有源表(即SELECT子句中涉及的表)的有SELECT权限。
有关 seekdb 权限的详细介绍,参见 seekdb 的权限分类。
语法
INSERT {into_table_insert | overwrite_table_insert};
into_table_insert:
[hint_options] [IGNORE] [INTO]
single_table_insert
[ON DUPLICATE KEY UPDATE update_asgn_list]
hint_options:
[/*+ [APPEND | DIRECT(bool, int, ['load_mode'])] enable_parallel_dml PARALLEL(N) | NO_DIRECT */]
load_mode:
full
| inc
| inc_replace
single_table_insert:
table_name [PARTITION (partition_name, ...)] [(column_list)] {VALUES | VALUE} (values_list)[, (values_list) ...]
| table_name [PARTITION (partition_name, ...)] [(column_list)] select_stmt
| table_name [PARTITION (partition_name, ...)] SET update_asgn_list
column_list:
column_name [,column_name ...]
values_list:
value [,value ...]
value:
expr
| DEFAULT
update_asgn_list:
column_name = expr [,column_name = expr ...]
overwrite_table_insert:
[/*+ PARALLEL(N)*/] OVERWRITE [INTO] table_name [(column_list)] [PARTITION (partition_name, ...)] select_stmt;
参数解释
| 参数 | 描述 |
|---|---|
| into_table_insert | 用于向表中插入数据。 |
| hint_options | 可选项,用于指定 Hint 选项,详细介绍可参见下文 hint_options。 |
| IGNORE | 可选项,指示在插入数据时发生的错误将会被忽略。 |
| INTO | 可选项,用来指示接下来是插入目标,可以省略。 |
| single_table_insert | 指定如何向表中插入数据。目前支持三种插入数据的方式,详细介绍可参见下文 single_table_insert。 |
| table_name | 指定要插入的表名。 |
| PARTITION (partition_name, ...) | 可选项,用于指定数据将被插入到表的哪个分区中,同时插入多个分区时以逗号(,)分隔。partition_name 表示插入表指定的分区名。 |
| column_list | 可选项,用于指定插入数据的列,同时插入多列时以逗号(,)分隔。 |
| column_name | 表示插入表指定列的列名称。 |
| ON DUPLICATE KEY UPDATE update_asgn_list | 可选项,指定对重复主键或唯一键的处理操作。
update_asgn_list 表示赋值语句,详细介绍可参见下文 update_asgn_list。 |
| overwrite_table_insert | 用于将查询结果替换表或分区中的现有数据,有关使用 INSERT OVERWRITE SELECT 语句的详细信息,参见 插入数据 中的 使用 INSERT OVERWRITE SELECT 语句插入数据 章节。 |
| select_stmt | 指定 SELECT 子句。有关查询语句的详细信息,参见 SELECT 语句。 |
hint_options
-
[APPEND | DIRECT(bool, int, [load_mode])] enable_parallel_dml PARALLEL(N):-
APPEND | DIRECT(bool, int, [load_mode]):可选项,使用 Hint 启用旁路导入功能。
-