Пакетная обработка данных
Назначение

Подготовка и выполнение SQL-запроса в режиме пакетной обработки.

Синтаксические правила
cursor.executemany (<​SQL-запрос​>[,<​параметры​> … ])

<​SQL-запрос​> – символьная строка
<​параметры​>  ::= <​опс​>
                   <​python-элементы типа tuple​> |
                   <​python-элементы типа list​>  |
                   <​python-элементы типа dict​>
                   <​зпс​>
<​python-элементы типа tuple​>::= <​окс​> tup1,..,tupN <​зкс​>
<​python-элементы типа list​>::= <​опс​> list1,..,listN <​зпс​>
<​python-элементы типа dict​>::= <​офс​> dict1,..,dictN <​офс​>
N – количество пакетов к обработке.
<​окс​>::= (
<​зкс​>::= )
<​опс​>::= [
<​зпс​>::= ]
<​офс​>::= {
<​зфс​>::= }
<​tupN​> – python-элемент типа tuple (см. спецификацию языка программирования Python)
<​listN​> – python-элемент типа list (см. спецификацию языка программирования Python)
<​dictN​> – python-элемент типа dict (см. спецификацию языка программирования Python)
      

Примечание

Синтаксис SQL-запросов (в том числе параметризованных) описан в документе «Справочник по SQL» (см. также атрибут paramstyle класса Connection).

Описание

Метод позволяет за один вызов подготовить SQL-запрос и затем выполнить его для всего пакета данных.

Пакет данных представляет собой массив, каждый элемент которого содержит набор значений параметров исполняемого SQL-запроса.

Значения параметров должны быть представлены в одном стиле (смешение разных типов представления не допускается).

Возвращаемое значение

Нет.

Примеры
1) передача параметров в виде python-элементов типа tuple:
cursor.executemany("insert into PEOPLE (ID, NAME) values (?, ?)",
[(1, "BORIS"),
(2, "SASHA")])
2) передача параметров в виде python-элементов типа list:
cursor.executemany("insert into PEOPLE (ID, NAME) values (?, ?)",
[[1, "BORIS"],
[2, "SASHA"]])
3) передача именованных параметров с помощью python-элементов типа dict:
cursor.executemany("insert into PEOPLE (ID, NAME) values (:I, :N)",
[{"I" : 1, "N" : "BORIS"},
{"I" : 2, "N" : "SASHA"}])