2016-05-10 10 views
1

1つの挿入ステートメントで次のことが可能かどうか疑問に思っていましたか?Vertica SQLは1つのステートメントに複数の行を挿入します

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); 

答えて

3

あなたでしUNION単一INSERTの文持っているSELECT:

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文を記録してください。これが最善の策です。

+2

ない、それは行のこの数のために重要なことanalytics.bw_covariance_matrix FROM analytics.bw_covariance_matrix SELECT行、X1、X2、X3 INTO INSERTを、あなたが行を管理しており、区別する必要がないので、UNION ALLは高速になります。 – kimbo305

1
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) 
+1

これはVerticaで動作しますか? Verticaがマルチレコードの挿入をサポートしていないことは私の理解です。 – JNevill

+0

ああ、それはVerticaのために迷った。いいえ、それはあなたが代わりに値を結合する必要があります動作しません。 – user6256515

+0

最初の列はID列ですか?もしそうなら、あなただけ行うことができます:行IN(1,2,3) – user6256515

関連する問題