向表中添加数据。
可使用基本查询样式插入数据。
INSERT INTO [TABLE] [tableIdentifier] [columnsClause] VALUES
--step 1:创建表 CREATE TABLE example_table ( a Int8, b String, c Date ) ENGINE = MergeTree ORDER BY (a) --step 2:在表中插入两行数据 INSERT INTO example_table VALUES (1, 'a', '2021-07-27'), (2, 'b', '2021-07-27')
数据可以以 ByteHouse 支持的格式传递给 INSERT。
INSERT INTO [TABLE] [tableIdentifier] [columnsClause] FORMAT format_name
-- step 1:创建表 CREATE TABLE `example_table` ( `a` Int8, `b` String, `c` Date ) ENGINE = `MergeTree` ORDER BY (`a`) -- step 2: 以 value 样式向表插入 2 行数据 INSERT INTO example_table FORMAT VALUES (1, 'a', '2021-07-27'), (2, 'b', '2021-07-27');
插入 SELECT 查询的结果。列按照它们在 SELECT 子句中的位置进行映射。然而,它们在 SELECT 表达式和 INSERT 表中的名称可能不同。如有必要,会进行类型转换。
INSERT INTO [TABLE] [tableIdentifier] [columnsClause] [selectUnionStmt]
INSERT INTO example_table SELECT * FROM example_table
从文件向表中插入数据。仅限于 gateway-client。
支持的文件格式:
INSERT INTO [TABLE] [tableIdentifier] [columnsClause] [FORMAT format_name] INFILE filepath
INSERT INTO my_table FORMAT csvwithnames INFILE '/Users/my_name/Downloads/ETH-USD.csv'
该语句的功能是重写表或表的某些分区
INSERT OVERWRITE TABLE table_name [ PARTITION (p1, ... | *) ] [ (COLUMN [, ...]) ] { VALUES ([, ...] ), ([, ...]) | QUERY }
参数
单分区键的分区重写
INSERT OVERWRITE test.insert_overwrite_t PARTITION (1) SELECT * FROM test.insert_overwrite_s WHERE d = 1;
单分区键的分区 VALUES 重写
INSERT OVERWRITE test.insert_overwrite_t PARTITION (2) VALUES (2,6), (3,3);
单分区键的多分区重写
INSERT OVERWRITE test.insert_overwrite_t PARTITION (1,2) SELECT * FROM test.insert_overwrite_s;
多分区键的多分区重写
INSERT OVERWRITE test.insert_overwrite_t PARTITION (('1',1), ('2',2)) SELECT * FROM test.insert_overwrite_s;
多分区键指定列的导入重写
INSERT OVERWRITE test.insert_overwrite_t PARTITION (('1',1)) (s,d,n) SELECT s,d,n FROM test.insert_overwrite_s;
使用 Partition ID 的分区重写
INSERT OVERWRITE test.insert_overwrite_t PARTITION (ID '2f4b47c7cb10a88d637501e1a15cbb47') SELECT * FROM test.insert_overwrite_s;
使用 Partition ID 的多分区重写
INSERT OVERWRITE test.insert_overwrite_t PARTITION (ID '2f4b47c7cb10a88d637501e1a15cbb47', ID 'fe7805ebd452ed4c738bdbbab09c6617') SELECT * FROM test.insert_overwrite_s;
整表重写
INSERT OVERWRITE test.insert_overwrite_t SELECT * FROM test.insert_overwrite_s;