我试图将schema.table_name设置为变量,但是我也想传递一个整数查询1,当我将其放在python控制台中时,它工作正常,但是当我通过gui调用时,它崩溃了。仅当存在%s时它才会崩溃。我该如何处理此类问题?
在下面提供的示例中,query1失败了,但查询2起作用了。
如您所见,我已经导入了两个必需的库。
import psycopg2
from psycopg2 import sql
sample = 10
conn = psycopg2.connect("<details>")
cur = conn.cursor()
print('tables dropped')
query1 = sql.SQL("""CREATE TABLE {}.{} AS
(SELECT * FROM {}.{} TABLESAMPLE BERNOULLI (%s));""").format(
*map(sql.Identifier, (schema, table_name_top, schema, top_point_cloud))), sample
query2 = sql.SQL("""CREATE TABLE {}.{} AS
(SELECT * FROM {}.{} TABLESAMPLE BERNOULLI (10));""").format(
*map(sql.Identifier, (schema, table_name_base, schema, base_point_cloud)))
print('query created')
cur.execute(query1)
cur.execute(query2)