2011-02-02 53 views
2

在postgres中,您可以將INSERT中的數組的值設置爲子查詢的結果嗎?像:postgres:使用子查詢設置數組的值?

INSERT INTO mytable 
VALUES(SELECT list_of_integers FROM someothertable WHERE somekey = somevalue); 

如果這一mytable只是作爲其一個列的類型integer[]和另一列list_of_integers也鍵入integer[]

回答

1

想要unnest函數。我想你會使用它像:

INSERT INTO mytable 
SELECT set_of_integers 
FROM unnest(
    SELECT list_of_integers 
    FROM someothertable 
    WHERE somekey = somevalue 
) t(set_of_integers) 

但我沒有PostgreSQL手工來嘗試自己。

1

是:

INSERT INTO 
    mytable 
    (column1, column2, an_array_of_integers_column) 
VALUES 
    (2, 'bbb', (SELECT list_of_integers FROM someothertable WHERE somekey = somevalue));