Spec-Zone.ru › MySQL Connectors 1.0

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.
https://docs.oracle.com/cd/E17952_01/connector-python-en/connector-python-api-mysqlcursor-executemany.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API