Kar*_*yan 5 python sqlalchemy insert
我想在表格中插入一些数据,我希望多次插入尽可能快.我使用sqlalchemy库进行Python.我想知道我的插入是否是最佳的,或者有更好的方法来执行此操作.这是我的代码:
from sqlalchemy import *
from sqlalchemy import schema
metadata = schema.MetaData()
engine = create_engine('sqlite:///:memory:', echo=True)
users = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('firstname', String(40)),
Column('lastname', Integer),
)
metadata.create_all(engine)
ins = users.insert()
conn = engine.connect()
conn.execute(users.insert(), [
{'id': 1, 'firstname' : 'Name1', 'lastname' : 'Lname1'},
{'id': 2, 'firstname' : 'Name2', 'lastname' : 'Lname2'},
{'id': 3, 'firstname' : 'Name3', 'lastname' : 'Lname3'}
])
metadata.bind = engine
Run Code Online (Sandbox Code Playgroud)
如果您看到日志,那么您可以检查一下
2011-11-22 10:15:37,188 INFO sqlalchemy.engine.base.Engine SELECT DATABASE()
2011-11-22 10:15:37,188 INFO sqlalchemy.engine.base.Engine ()
2011-11-22 10:15:37,191 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'character_set%%'
2011-11-22 10:15:37,191 INFO sqlalchemy.engine.base.Engine ()
2011-11-22 10:15:37,193 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'lower_case_table_names'
2011-11-22 10:15:37,193 INFO sqlalchemy.engine.base.Engine ()
2011-11-22 10:15:37,194 INFO sqlalchemy.engine.base.Engine SHOW COLLATION
2011-11-22 10:15:37,194 INFO sqlalchemy.engine.base.Engine ()
2011-11-22 10:15:37,200 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'sql_mode'
2011-11-22 10:15:37,201 INFO sqlalchemy.engine.base.Engine ()
2011-11-22 10:15:37,203 INFO sqlalchemy.engine.base.Engine DESCRIBE `users`
2011-11-22 10:15:37,203 INFO sqlalchemy.engine.base.Engine ()
2011-11-22 10:15:37,204 INFO sqlalchemy.engine.base.Engine ROLLBACK
2011-11-22 10:15:37,206 INFO sqlalchemy.engine.base.Engine
CREATE TABLE users (
id INTEGER NOT NULL AUTO_INCREMENT,
firstname VARCHAR(40),
lastname INTEGER,
PRIMARY KEY (id)
)
2011-11-22 10:15:37,206 INFO sqlalchemy.engine.base.Engine ()
2011-11-22 10:15:37,331 INFO sqlalchemy.engine.base.Engine COMMIT
2011-11-22 10:15:37,333 INFO sqlalchemy.engine.base.Engine INSERT INTO users (id, firstname, lastname) VALUES (%s, %s, %s)
2011-11-22 10:15:37,333 INFO sqlalchemy.engine.base.Engine ((1, 'Name1', 'Lname1'), (2, 'Name2', 'Lname2'), (3, 'Name3', 'Lname3'))
Run Code Online (Sandbox Code Playgroud)
只有一次插入包含所有值,因此我认为这是插入批量/批量数据的最佳方法。
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |