Vertica SQL在一条语句中插入多行
想知道是否可以在一个插入语句中完成以下内容?Vertica SQL在一条语句中插入多行
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);
你可以UNION
一个SELECT有一个单一的INSERT
声明:
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
我不相信,Vertica的具有多记录像MySQL和其他RDBMS的插入语句,所以这是最好的选择。
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);
试试这个:
INSERT INTO analytics.bw_covariance_matrix
SELECT row, x1, x2, x3
FROM analytics.bw_covariance_matrix
WHERE row IN (1,2,3)
这是否在Vertica中有效。我的理解是,Vertica不支持多记录插入。 – JNevill
啊.sorry错过了Vertica。不,它不会工作,你需要将值合并。 – user6256515
第一列是ID列吗?如果是的话,你可能只是这样做: INSERT INTO analytics.bw_covariance_matrix 选择行,X1,X2,X3 FROM analytics.bw_covariance_matrix WHERE行(1,2,3) – user6256515
这不是问题这一行数,但是UNION ALL会更快,因为你在控制行并且不需要区分。 – kimbo305