我想在VERTICA中有效地插入多行。在PostgreSQL(可能还有其他SQL实现)中,可以
INSERT
一条语句中有多行,这比单次插入要快得多(特别是在自动提交模式下)。
在新创建的表中加载两行的最小自包含示例如下所示
(一)
CREATE TABLE my_schema.my_table (
row_count int,
some_float float,
some_string varchar(8));
INSERT INTO my_schema.my_table (row_count, some_float, some_string)
VALUES (1,1.0,'foo'),(2,2.0,'bar');
但它的美妙之处在于,价值的排列顺序可以改变为
:
INSERT INTO my_schema.my_table (some_float, some_string, row_count)
VALUES (1.0,'foo',1),(2.0,'bar',2);
此外,此语法允许省略随后由默认值填充的列(例如自动递增整数等)。
然而,VERTICA似乎不可能使用相同的微调来进行多行插入。事实上,模仿类似行为的唯一方法似乎是
UNION
(三)
:
INSERT INTO my_schema.my_table SELECT 1,1.0,'foo' UNION SELECT 2,2.0,'bar';
在这个答案中:
Vertica SQL insert multiple rows in one statement
.
(三)
但有可能改变列顺序
(二)
COPY LOCAL
?