gpt4 book ai didi

python - 是否有 Python MySQL API 返回准备好的语句以供重用?

转载 作者:可可西里 更新时间:2023-11-01 07:45:16 24 4
gpt4 key购买 nike

都不是MySQLdb也不oursql允许返回 prepared statements由连续执行的参数填充。还有其他的吗?

至少对于 .executemany() oursql 似乎比 MySQLdb 更熟练,因为 SQL 语句只为所有提交准备一次值(value)观。

(Python 是否支持使用 PostgreSQL 准备和重用 Prepared Statements?)

最佳答案

对于您的 PostgreSQL 问题,答案是至少截至去年 10 月,没有特定于 Python 的方法来处理准备好的语句(我不是 Python 程序员,但这在各种语言中相当普遍)。然而,PostgreSQL 提供了一种 SQL 语言方法来执行此操作,因此如果可以执行 SQL 查询,任何语言都可以使用准备好的语句。有关如何在 Python 中执行此操作的代码示例,请参阅 http://initd.org/psycopg/articles/2012/10/01/prepared-statements-psycopg/

不过有几个主要的警告。其中之一是准备好的语句在第一次运行时进行计划,然后重新使用该计划。这对于统一需要相同计划(例如,简单插入)的查询非常有用,但它会导致参数可能发生足够大的变化以至于可能需要新计划的问题。因此,在大多数情况下,以下内容可能没问题(仍然需要注意一些令人讨厌的极端情况):

  1. INSERT INTO foo (bar) values ($1)
  2. SELECT * FROM foo WHERE bar= $1;假设 bar 是主键

像下面这样的东西可能不安全:

  1. SELECT * FROM foo WHERE bar < $1
  2. SELECT * FROM foo WHERE baz = $1其中 baz 可能有很大一部分行具有相同的值。

关于python - 是否有 Python MySQL API 返回准备好的语句以供重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15832451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com