【问题标题】:How to save a Redshift SELECT atribute into a script variable [duplicate]如何将 Redshift SELECT 属性保存到脚本变量中
【发布时间】:2016-04-16 04:05:28
【问题描述】:

我想创建一个脚本来使用 Redshift 自动化一些流程。具体来说,我想用 SELECT 找到我的一个表的属性,然后在 INSERT 中使用它。我的脚本如下所示:

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 中,它显示了如何在一个独特的句子中执行此操作,但我需要保存该值以备将来使用。

【问题讨论】:

    标签: bash postgresql amazon-redshift psql


    【解决方案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

    unaligned 格式将一行的所有列写入一行,以 当前活动的字段分隔符。这对创建很有用 可能打算被其他程序读入的输出(例如 例如,制表符分隔或逗号分隔的格式)。

    【讨论】:

    • 它与“-t”一起工作。它只给了我价值。谢谢!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 2016-08-28
    • 1970-01-01
    • 2013-03-02
    • 2013-09-20
    相关资源
    最近更新 更多