文档首页
MySQL Connector/Python 开发者指南
相关文档 下载此手册
PDF (US Ltr) - 0.7Mb
PDF (A4) - 0.7Mb


MySQL Connector/Python 开发者指南  /  ...  /  MySQLCursor.executemany() 方法

10.5.8 MySQLCursor.executemany() 方法

语法

cursor.executemany(operation, seq_of_params)

此方法准备一个数据库 操作(查询或命令)并针对 seq_of_params 序列中找到的所有参数序列或映射执行该操作。

注意

在 Python 中,包含单个值的元组必须包含逗号。例如,('abc') 被评估为标量,而 ('abc',) 被评估为元组。

在大多数情况下,executemany() 方法会遍历参数序列,每次将当前参数传递给 execute() 方法。

对插入进行了优化:参数序列给出的数据值将使用多行语法进行批处理。以下示例插入三条记录

data = [
  ('Jane', date(2005, 2, 12)),
  ('Joe', date(2006, 5, 23)),
  ('John', date(2010, 10, 3)),
]
stmt = "INSERT INTO employees (first_name, hire_date) VALUES (%s, %s)"
cursor.executemany(stmt, data)

对于前面的示例,发送到 MySQL 的 INSERT 语句为

INSERT INTO employees (first_name, hire_date)
VALUES ('Jane', '2005-02-12'), ('Joe', '2006-05-23'), ('John', '2010-10-03')

使用 executemany() 方法,无法在 operation 参数中指定要执行的多个语句。这样做会引发 InternalError 异常。请考虑改用 execute()multi=True