6

我是python的初学者。我们使用这段代码来执行 SQL 命令。

cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (100, "abcdef"))

我想知道这是准备好的声明还是只是客户端引用?

4

3 回答 3

21

不,它没有,至少对 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

于 2013-04-15T18:02:36.943 回答
0

psycopg确实支持从版本 3 开始的准备好的语句:

https://www.psycopg.org/psycopg3/docs/advanced/prepare.html#prepared-statements

查询在连接上执行超过 prepare_threshold 次后会自动准备。

于 2021-11-07T18:11:37.383 回答
-8

根据文档,执行方法将“准备并执行数据库操作(查询或命令)。”。所以是的,这是一个准备好的声明。

于 2012-03-26T03:49:26.313 回答