【问题标题】:parameterised postgresql select statement using python使用 python 的参数化 postgresql 选择语句
【发布时间】:2018-09-01 08:03:22
【问题描述】:
sql="select %s,tablename from pg_table_def where tablename like (%s)"

data=("schemaname","abc",)

cur.execute(sql,data)

如果我如上所述传递一个值,则选择将其作为字符串。 这不是本意。

如果我尝试

data=(schemaname,"abc",)

然后它显示错误global name 'schemaname' is not defined

【问题讨论】:

    标签: python postgresql aws-lambda amazon-redshift psycopg2


    【解决方案1】:

    您不能以这种方式参数化对象名称(在本例中为列名称)。您可以改用字符串操作:

    column = "schemaname"
    sql = "select {}, tablename from pg_table_def where tablename like (%s)".format(column) 
    data= ("abc",)
    
    cur.execute(sql,data)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 2022-01-19
      • 2014-07-07
      • 2021-08-19
      • 1970-01-01
      相关资源
      最近更新 更多