sql - 在 postgresql 中混合 %s 和 {} 占位符
问题描述
我正在尝试将 schema.table_name 设置为一个变量,但我也想传递一个整数查询 1 当我将它放在 python 控制台中时工作正常,但是当我通过 gui 调用它时它会崩溃。它仅在 %s 存在时崩溃。我该如何处理这种问题?
在下面提供的示例中,查询 1 出现问题,但查询 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)
解决方案
推荐阅读
- bash - 如何使用vim的-c标志?
- sql - select * from [table] where min(date) > 某个日期
- reactjs - 如何连接中间件和 redux-persis
- html - 对齐/环绕图像和文本
- javascript - 错误:{#each} 仅迭代类似数组的对象。-- Javascript & Svelte
- r - 绘制具有轴限制的 ROC 问题。R地块
- java - 如何使用我的模型类从 firebase 数据库中检索列表
- android - 如何在屏幕关闭的情况下在 android 中扫描没有 uuid 过滤器的 ble 外围设备?
- dependencies - Modelica getTime 不可用
- ios - 批量创建 Apple 应用内购买消耗品