objectif
Insérer efficacement plusieurs lignes avec executemany et commit unique.
code minimal
import sqlite3
con = sqlite3.connect(":memory:")
con.execute("create table t(x int)")
con.executemany("insert into t(x) values(?)", [(i,) for i in range(5)])
con.commit()
n = con.execute("select count(*) from t").fetchone()[0]
print(n == 5) # attendu: True
con.close()
utilisation
import sqlite3
con = sqlite3.connect(":memory:")
con.execute("create table t(a int, b text)")
data = [(1,"x"), (2,"y")]
con.executemany("insert into t(a,b) values(?,?)", data); con.commit()
print(con.execute("select sum(a) from t").fetchone()[0] == 3); con.close()
variante(s) utile(s)
import sqlite3
print(callable(sqlite3.Connection.executemany))
notes
- Utilisez une transaction explicite pour de meilleures perfs.
- Placeholders ? protègent des injections; ne formatez pas les valeurs dans SQL.