我是python的初学者。我们使用这段代码来执行 SQL 命令。
cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (100, "abcdef"))
我想知道这是准备好的声明还是只是客户端引用?
我是python的初学者。我们使用这段代码来执行 SQL 命令。
cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (100, "abcdef"))
我想知道这是准备好的声明还是只是客户端引用?
不,它没有,至少对 psycopg2 没有。文档中的“准备”是指“准备事务”,它与准备好的语句完全不同。
但是,您可以通过覆盖方法或执行额外的语句来模拟准备好的语句。请参阅:支持准备好的语句的 psycopg2 游标示例
请参阅:psycopg 的相关博客条目。
更多信息:
http://www.postgresql.org/docs/9.2/static/sql-prepare.html
http://www.postgresql.org/docs/current/static/sql-prepare-transaction.html
psycopg
确实支持从版本 3 开始的准备好的语句:
https://www.psycopg.org/psycopg3/docs/advanced/prepare.html#prepared-statements
查询在连接上执行超过 prepare_threshold 次后会自动准备。
根据文档,执行方法将“准备并执行数据库操作(查询或命令)。”。所以是的,这是一个准备好的声明。