如何将 Redshift SELECT 属性保存到脚本变量中
Posted
技术标签:
【中文标题】如何将 Redshift SELECT 属性保存到脚本变量中【英文标题】:How to save a Redshift SELECT atribute into a script variable [duplicate] 【发布时间】: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 中,它显示了如何在一个独特的句子中执行此操作,但我需要保存该值以备将来使用。
【问题讨论】:
【参考方案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”一起工作。它只给了我价值。谢谢!!!以上是关于如何将 Redshift SELECT 属性保存到脚本变量中的主要内容,如果未能解决你的问题,请参考以下文章
如何将 TIMESTAMP 转换为 VARCHAR 并将其保存到 Redshift 中的另一个表中?
如何在 python udf 中使用 select 查询进行 redshift?
S3 使用 COPY 到 Redshift:无法 COPY 到不存在的表中
是否可以将 CSV 上传到 redshift 并让它自动运行并导出保存的查询?