我试图使用SQLALchemy 1.1.2编写一个字符串SQL查询。我遵循了文档中关于using textual SQL的说明,但在运行以下代码时遇到了语法错误:
from sqlalchemy.sql import text
# Create a database connection called "connection"...
q = text('USE :name')
connection.execute(q, name='DATABASE_NAME')
以下是错误消息:
^{pr2}$由于我使用的是命名冒号格式,并将参数作为参数传递给connection.execute
,所以我不知道为什么会出现这个问题。我使用的是MySQL服务器,但是如果我正确地阅读文档,text
方法应该与DB无关。在
提前谢谢你的帮助。在
根据documentation,您需要使用bindparams,如下所示:
或者像这样:
^{pr2}$这对我来说毫无问题。编辑:我错了,没用。
问题是bind params将用一个引号自动包装您的值。因此,您得到了最终的compiles语句(语法无效):
如果您要创建查询:
"Select * from mytable where column_a=:name"
;这将起作用。因为它是用单引号括起来的。在我建议您使用声明:
或者类似的东西。在
相关问题 更多 >
编程相关推荐