可能,我的问题听起来很奇怪!但是,我需要在Python中使用此SQL查询:
cursor.execute("SELECT TABLE_NAME AS TABLE FROM M_CS_TABLES WHERE SCHEMA_NAME = 'TEST' ")
自'TEST'架构更改后,我需要一个类似的查询:
schema_name = 'TEST'
cursor.execute(" SELECT TABLE_NAME AS TABLE FROM M_CS_TABLES WHERE SCHEMA_NAME = " + str(schema_name))
但这一行的输出将是:
'SELECT TABLE_NAME AS TABLE FROM M_CS_TABLES WHERE SCHEMA_NAME = TEST'
不:
“SELECT TABLE_NAME AS TABLE FROM M_CS_TABLES WHERE SCHEMA_NAME ='TEST'”
需要什么。
我将非常感谢你的帮助。
你可以用另一对引号包装'TEST'
,即使用'"TEST"'
。
更好的是,使用'TEST'
插入str.format
。
>>> schema_name = 'TEST'
>>> 'blablabla "{}"'.format(schema_name)
'blablabla "TEST"'
这是相当基本的SQL实践。永远不要像这样连接字符串。
对于您的情况,最好的方法是:
schema_name = 'TEST'
cursor.execute("SELECT TABLE_NAME AS TABLE FROM M_CS_TABLES WHERE SCHEMA_NAME = %s", schema_name)
http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries