使用 encode/databases fecthall 方法的值替换
Value substitution using encode/databases fecthall method
我正在使用 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"
一切都按预期工作。
感谢任何帮助。谢谢!
asyncpg 和许多其他 sql 库不支持 FROM 子句中的变量替换。
我正在使用 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"
一切都按预期工作。
感谢任何帮助。谢谢!
asyncpg 和许多其他 sql 库不支持 FROM 子句中的变量替换。