10.5.8 Метод 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)
Для предыдущего примера, отправленное в MySQL выражение:
INSERT INTO employees (first_name, hire_date)
VALUES ('Jane', '2005-02-12'), ('Joe', '2006-05-23'), ('John', '2010-10-03')
С помощью метода executemany() невозможно указать несколько заявлений для выполнения в аргументе operation. В противном случае возникает исключение InternalError. Рассмотрите использование Раздела 9.3, «Выполнение нескольких запросов» вместо этого.
© 2025 Oracle
Licensed under the GPLv2 License.