Syntax:
Press CTRL+C to copycursor.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:
Press CTRL+C to copydata = [ ('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:
Press CTRL+C to copyINSERT 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
Section 9.3, “Executing Multiple Statements” instead.