tortois-orm 批量插入

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模型进行创建。通过这种方式,可以在单个数据库查询中批量插入多条数据,提高了插入数据的效率。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值