sqlalchemy批量插入
时间: 2023-12-11 09:46:56 浏览: 271
批量插入大量数据
5星 · 资源好评率100%
可以使用批量插入功能来优化插入大量数据的性能。sqlalchemy提供了两种方式实现批量插入:
1. 使用add_all()方法
add_all()方法可以一次性插入多个数据,代码如下:
```
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from models import User
engine = create_engine('mysql+pymysql://root:password@localhost:3306/test')
Session = sessionmaker(bind=engine)
session = Session()
users = [User(name='user1'), User(name='user2'), User(name='user3')]
session.add_all(users)
session.commit()
```
2. 使用execute()方法
execute()方法可以执行一条包含多个插入语句的SQL语句,代码如下:
```
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from models import User
engine = create_engine('mysql+pymysql://root:password@localhost:3306/test')
Session = sessionmaker(bind=engine)
session = Session()
users = [{'name': 'user1'}, {'name': 'user2'}, {'name': 'user3'}]
session.execute(User.__table__.insert(), users)
session.commit()
```
这里需要注意的是,第二个参数必须是一个包含多个字典的列表,每个字典表示一条插入语句的值。另外,这种方式只能插入数据,不能返回插入的数据对象。
阅读全文