Vertica SQL insert multiple rows in one statement

这一生的挚爱 提交于 2020-01-13 05:31:06

问题


Was wondering whether it's possible to accomplish the following in one insert statement?

drop table analytics.bw_covariance_matrix;
create table analytics.bw_covariance_matrix (
row int,
x1 float,
x2 float,
x3 float
);

insert into analytics.bw_covariance_matrix VALUES
(1, 4.01926965, -0.4686067, -0.07592112),
insert into analytics.bw_covariance_matrix VALUES
(2, -0.46860675,  4.1799267, -0.82461139);
insert into analytics.bw_covariance_matrix VALUES
(3, -0.07592112, -0.8246114,  4.37186211);

回答1:


You could UNION a SELECT to have a single INSERT statement:

insert into analytics.bw_covariance_matrix 
SELECT 1, 4.01926965, -0.4686067, -0.07592112
UNION
SELECT 2, -0.46860675,  4.1799267, -0.82461139
UNION
SELECT 3, -0.07592112, -0.8246114,  4.37186211

I don't believe that Vertica has a multi record insert statement like MySQL and other RDBMS's, so this is the best bet.




回答2:


insert into analytics.bw_covariance_matrix VALUES
(1, 4.01926965, -0.4686067, -0.07592112),
(2, -0.46860675,  4.1799267, -0.82461139),
(3, -0.07592112, -0.8246114,  4.37186211);

Try this instead:

INSERT INTO analytics.bw_covariance_matrix 
SELECT row, x1, x2, x3
FROM analytics.bw_covariance_matrix
WHERE row IN (1,2,3)


来源:https://stackoverflow.com/questions/37143786/vertica-sql-insert-multiple-rows-in-one-statement

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!