Syntax:
cursor.executemany(operation, seq_of_params)
This method prepares a database operation
(query or command) and executes it against all parameter
sequences or mappings found in the sequence
seq_of_params
.
In Python, a tuple containing a single value must include a comma. For example, ('abc') is evaluated as a scalar while ('abc',) is evaluated as a tuple.
In most cases, the executemany()
method
iterates through the sequence of parameters, each time passing
the current parameters to the execute()
method.
An optimization is applied for inserts: The data values given by the parameter sequences are batched using multiple-row syntax. The following example inserts three records:
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)
For the preceding example, the
INSERT
statement sent to MySQL
is:
INSERT INTO employees (first_name, hire_date)
VALUES ('Jane', '2005-02-12'), ('Joe', '2006-05-23'), ('John', '2010-10-03')
With the executemany()
method, it is not
possible to specify multiple statements to execute in the
operation
argument. Doing so raises an
InternalError
exception. Consider using
execute()
with multi=True
instead.