Documentation Home
MySQL Connector/Python Developer Guide
Related Documentation Download this Manual
PDF (US Ltr) - 0.7Mb
PDF (A4) - 0.7Mb


10.5.8 MySQLCursor.executemany() Method

Syntax:

cursor.executemany(operation, seq_of_params)

This method prepares a databaseoperation (query or command) and executes it against all parameter sequences or mappings found in the sequenceseq_of_params.

Note

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, theexecutemany() method iterates through the sequence of parameters, each time passing the current parameters to theexecute() 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, theINSERT 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 theexecutemany() method, it is not possible to specify multiple statements to execute in theoperation argument. Doing so raises anInternalError exception. Consider usingSection 9.3, “Executing Multiple Statements” instead.