从python声明postgres中的变量

时间:2017-03-28 12:38:25

标签: python postgresql variables

我有一个变量,其值由用户每次运行查询时设置。我在python中运行这个脚本,然后调用postgres数据库。我希望首先在一段sql代码中为变量赋值,然后我希望在第二段sql代码中调用该变量。

这是我目前的代码:

首先设置postgres变量的代码:

sql_stateVar=(""" 
                  tempState VARCHAR:= %s
              """
              ,(stateVar,))
cur.execute(*sql_stateVar)

然后在postgres中设置此变量,我将调用此存储变量:

sqlquery=("""
    SELECT UPPER(b.state) AS state,
    FROM opentable_full b
    WHERE UPPER(b.state)=UPPER(tempState)
    GROUP BY UPPER(b.state)
""")

然后我有以下代码:

    outputquery = "COPY({0}) TO STDOUT WITH CSV HEADER".format(sqlquery)

    with open('resultsfile', 'w') as f:
        cur.copy_expert(outputquery, file=f)

我已经看到了关于在postgres中设置变量的限制的几个答案,但由于我是postgres的新手,我不确定这些答案是否是我需要的。

例如: Is there a way to define a named constant in a PostgreSQL query?

How to declare local variables in postgresql?

0 个答案:

没有答案