当前位置: 首页 > 工具软件 > tortoise-orm > 使用案例 >

tortois-orm 批量插入

冯德宇
2023-12-01

Tortoise-ORM提供了bulk_create()方法,可以用于在单个数据库查询中批量插入多条数据。

下面是一个使用bulk_create()方法批量插入商品信息到goods表中的示例:

from tortoise import fields
from tortoise.contrib.fastapi import register_tortoise
from tortoise.models import Model
from tortoise import Tortoise

class Goods(Model):
    id = fields.IntField(pk=True)
    name = fields.CharField(max_length=50)
    price = fields.FloatField()

async def insert_goods(goods_data):
    goods = [Goods(**data) for data in goods_data]
    await Goods.bulk_create(goods)

if __name__ == '__main__':
    Tortoise.init_models(["app.models"], "models")
    register_tortoise(
        app=None,
        db_url="sqlite://db.sqlite3",
        modules={"models": ["app.models"]},
        generate_schemas=True,
    )

    goods_data = [
        {"name": "商品1", "price": 100.0},
        {"name": "商品2", "price": 200.0},
        {"name": "商品3", "price": 300.0},
    ]

    await insert_goods(goods_data)

这个示例中,bulk_create方法接收一个列表参数,包含要批量插入的多条数据,并使用**操作符将数据解包传递给Goods模型进行创建。通过这种方式,可以在单个数据库查询中批量插入多条数据,提高了插入数据的效率。

如果您需要插入的数据量非常大,可以将数据分成多个小批次批量插入,这样能够降低内存使用,提高程序的稳定性和响应速度。

 类似资料: