使用编码/数据库 fecthall 方法进行值替换

我正在使用encode/databases(https://www.encode.io/databases/database_queries/),它已配置为使用 postgresql+aiopg://DBUSER:DBPASS@1.2.3.4:1234/SOMEDB 以下函数进行连接:


async def get_table_sample(table_name: str, db: Database):

    result = await db.fetch_all("SELECT * FROM :table_name limit 100", values={"table_name": table_name})

    return result

运行时,抛出以下错误:


psycopg2.errors.SyntaxError: at or near "rally_iteration": syntax error

DETAIL:  source SQL:

SELECT * FROM 'rally_iteration' limit 100

请注意 subbed 变量周围的引号。如果我将查询硬编码为"SELECT * from rally_iteration limit 100" 一切按预期工作。


任何帮助表示赞赏。谢谢!


智慧大石
浏览 92回答 1
1回答

海绵宝宝撒

asyncpg 和许多其他 sql 库不支持 FROM 子句中的变量替换。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python