2016-01-11 64 views
0

我想創建一個腳本來使用Redshift自動化一些流程。具體來說,我想用SELECT來找到我的一個表的屬性,然後在INSERT中使用它。我的腳本是這樣的:如何將Redshift SELECT屬性保存到腳本變量

psql -h ... -c "SELECT id_process FROM process WHERE de_process = 'EMR'" 
psql -h ... -c "INSERT INTO execution (id_process) values (X);" 

在第一句話中,我得到一個獨特的價值,我在尋找的ID,其格式如下:

id_proceso 
------------ 
     2 
(1 row) 

然後我想用它的價值在第二句插入,替換「X,但我不知道如何保存到一個變量,然後再用第一句話的輸出。

任何建議?

P.D.在其他question它顯示如何在一個獨特的句子中做到這一點,但我需要保存該值以備將來使用。

回答

1

檢查psql選項,但示例腳本可以是下列:

psql -h localhost -d testdb <<EOF 
    \out sample.txt 
    \pset border 1 
    WITH test_data AS (SELECT 2 AS id_process) 
    SELECT id_process FROM test_data; 
    \out 
EOF 

結果爲cat sample.txt將是:

id_process 
------------ 
      2 
(1 row) 

如果你想從SELECT聲明得到的只是純粹的價值,考慮以上示例中的以下參數:

\t

切換輸出列名和標題行的顯示數 頁腳。該命令相當於\pset tuples_only並且爲方便起見提供了 。

\pset format unaligned

未對齊格式寫在一行上一列的所有列,由 當前活動的場分離器中分離。這對於創建 輸出可能有意被其他程序讀入(對於 示例,製表符分隔或逗號分隔格式)非常有用。

+0

它與「-t」一起工作。它只給我價值。 Thans !!! – EMBorque

相關問題