连接器和 API 手册 / 第 6 章 MySQL 连接器/Python 开发人员指南 / 6.9 连接器/Python API 参考 / 6.9.5 游标.MySQL游标类 /
6.9.5.5 MySQLCursor.executemany() 方法
句法:
cursor.executemany(operation, seq_of_params)
此方法准备数据库operation
(查询或命令)并针对序列中找到的所有参数序列或映射执行它
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)
对于前面的例子,
INSERT
发送到 MySQL 的语句是:
INSERT INTO employees (first_name, hire_date)
VALUES ('Jane', '2005-02-12'), ('Joe', '2006-05-23'), ('John', '2010-10-03')
使用该executemany()
方法,无法在
operation
参数中指定要执行的多个语句。这样做会引发
InternalError
异常。考虑改用
execute()
with multi=True
。