postgresql – psycopg2 cursor.execute()传入变量表名和项

我试图使用psycopg2从postgres数据库中的特定表中获取某组对象.我在将变量传递给cursor.execute(SQL)命令时看到的所有建议似乎都不适用于两种类型的变量

这是我累了第一次没用的东西:

SQL = 'SELECT * FROM %s WHERE created_on < date (%s);'
cursor.execute(SQL,[(table_name), (time_from)])

这总是返回插入table_name的语法错误

最佳答案 正如Antoine的评论所提到的,
documentation现在建议使用这种方法来组合表名.

from psycopg2 import sql

cur.execute(
sql.SQL("insert into {} values (%s, %s)")
    .format(sql.Identifier('my_table')),
[10, 20])
点赞