التابع Cursor.executemany()
في بايثون
ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في تسلسل المعاملات المعطى.
البنية العامة
executemany(sql, seq_of_parameters)
المعاملات
sql
سلسلة نصية تتضمن جمل SQL المراد تنفيذها.
seq_of_parameters
ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في التسلسل seq_of_parameters
. تسمح وحدة sqlite3
كذلك باستخدام مكرِّر ينتج معاملات بدلًا عن إنتاج تسلسل.
أمثلة
يبين المثال التالي طريقة استخدام التابع:
import sqlite3
class IterChars:
def __init__(self):
self.count = ord('a')
def __iter__(self):
return self
def __next__(self):
if self.count > ord('z'):
raise StopIteration
self.count += 1
return (chr(self.count - 1),) # this is a 1-tuple
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table characters(c)")
theIter = IterChars()
cur.executemany("insert into characters(c) values (?)", theIter)
cur.execute("select c from characters")
print(cur.fetchall())
يستخدم المثال التالي المولدات:
import sqlite3
import string
def char_generator():
for c in string.ascii_lowercase:
yield (c,)
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table characters(c)")
cur.executemany("insert into characters(c) values (?)", char_generator())
cur.execute("select c from characters")
print(cur.fetchall())
انظر أيضًا
- التابع
Connection.execute()
: ينفّذ التابع جملة SQL المعطاة.
- التابع
Connection.executescript()
: هذا التابع من التوابع غير المعيارية والذي يسهل عملية تنفيذ جمل SQL متعددة دفعة واحدة.
مصادر
صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.