文件首頁
MySQL Connector/Python 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 0.7Mb
PDF (A4) - 0.7Mb


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 陳述式如下:

INSERT INTO employees (first_name, hire_date)
VALUES ('Jane', '2005-02-12'), ('Joe', '2006-05-23'), ('John', '2010-10-03')

使用 executemany() 方法,無法在 operation 引數中指定要執行的多個陳述式。這樣做會引發 InternalError 例外狀況。請考慮改為使用 execute()multi=True