首页 > 其他分享 >TypeORM批量插入

TypeORM批量插入

时间:2024-10-20 16:09:37浏览次数:1  
标签:insert 批量 title createQueryBuilder 插入 save TypeORM

在 TypeORM 中,批量插入数据可以通过多种方法实现,包括 save、insert 和 createQueryBuilder。这些方法各有优缺点,适用于不同的场景。

使用 createQueryBuilder 进行批量插入

createQueryBuilder 是性能最优的批量插入方法。以下是一个示例:

await dataSource .createQueryBuilder() .insert() .into(User) .values([ { firstName: "Timber", lastName: "Saw" }, { firstName: "Phantom", lastName: "Lancer" }, ]) .execute();

这种方法在插入大量数据时非常高效1。如果不需要插入数据后的 ID,可以通过设置 updateEntity(false) 来避免额外的 SELECT 查询:

entityManager .createQueryBuilder() .insert() .into("user") .values(users) .updateEntity(false) .execute();

使用 save 方法进行批量插入

save 方法也可以用于批量插入,但它会触发实体监听器和订阅者,并返回保存后的对象,包括自动生成的 ID:

let userRepository = connection.getRepository(User); let users = userRepository.create([ { name: '张三' }, { name: '李四' } ]); let result = await userRepository.save(users); console.log(result);

save 方法适用于需要处理实体监听器和订阅者的场景2

处理插入冲突

在并发情况下,插入数据可能会出现主键冲突。可以使用 ON DUPLICATE KEY UPDATE 语句来处理这种情况:

await connection.createQueryBuilder() .insert() .into(Post) .values(post2) .onConflict(`("id") DO UPDATE SET "title" = :title`) .setParameter("title", post2.title) .execute();

这种方法可以有效地处理主键冲突,并更新已有记录1

总结

在 TypeORM 中,批量插入数据可以通过 createQueryBuilder、save 和 insert 方法实现。根据具体需求选择合适的方法,可以提高插入效率并处理可能的冲突。

标签:insert,批量,title,createQueryBuilder,插入,save,TypeORM
From: https://www.cnblogs.com/sexintercourse/p/18487434

相关文章

  • USB协议详解第15讲(USB传输-批量传输及事务组成)
    1.前言前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了同步传输细节及事务组成,今天我们主要讲解批量传输及事务组成,批量传输也叫大容量传输。批量传输和同步传输类似,是使用批量事务(BulkTrans......
  • 短剧批量转存工具,超级省时省力,短剧好帮手
    搜索时得到一个短剧资源库,面对万部的短剧,一个个保存太麻烦每天下班保存一百多部,三天就不行了,手酸指头疼,本着互联网有无限可能,发现真有网盘批量转存工具,正好网盘开了会员,不怕网盘爆了。今天介绍两款夸克转存工具和一个百度转存工具短剧猫批量转存工具先是找到夸克cookies......
  • ton 合约map批量同步和go调用
    tact代码:import"@stdlib/deploy";import"@stdlib/ownable";structRoundInfo{orders:map<Intasuint32,BuyInfo>;sum:Intasuint16;arrLength:Intasuint16;}structBuyInfo{startLuckyNum......
  • python在word文档中插入题注和查找题注
    目录1、打开word文档2、在文档中为图片插入题注3、在文档中为表格插入题注4、遍历所有题注5、更新题注编号在自动化处理word时,可以使用脚本为word文档中图片和表格插入题注;也可以查找word文档中已经插入的题注,查看并修改。1、打开word文档importwin32com.clientas......
  • 代码随想录算法训练营day19| 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插
    学习资料:https://programmercarl.com/0235.二叉搜索树的最近公共祖先.html****学习记录:235.二叉搜索树的最近公共祖先(加一个函数traversal)点击查看代码#Definitionforabinarytreenode.#classTreeNode(object):#def__init__(self,x):#self.val=x......
  • 必学排序算法——插入排序
    目录前言、一、什么是插入排序算法二、插入排序的特点三、算法基本步骤四、算法图解五、c代码模板六、经典例题1.去掉最低工资和最高工资后的工资平均值代码题解2.删除某些元素后的数组均值3.学生分数的最小差值七、结语前言、插入排序算法是必须掌握的一种基础算......
  • 如何给VS2022的代码背景插入好看的图片呢?
    目录效果展示操作步骤效果展示在代码编辑区中插入了自己喜欢的图片!!!操作步骤步骤1:步骤2:搜索:ClaudiaIDE步骤3:步骤4:步骤5:步骤6:可以选择自己喜欢的图片。总结:画红色圈里面是一些参数,大家可以自行试一下,也可以和我保持一致。希望对大家有所帮助,希望大家会喜欢VS2022的......
  • 盘点6个Pandas中批量替换字符的方法
    大家好,我是Python进阶者。一、前言前几天在Python最强王者群有个叫【dcpeng】的粉丝问了一个关于Pandas中的问题,这里拿出来给大家分享下,一起学习。想问一下我有一列编码为1,2,3,4的数据,如何将1批量换为“开心”,2批量换为“悲伤”这种字符替换呢?二、解决过程思路挺简单,限定Pandas......
  • Advanced Renamer v4.05.0 文件批量重命名工具绿色版
    AdvancedRenamer是一款界面简洁友好功能强大的轻量型批量重命名工具,用户无需专业知识就能掌握运用的高级批量修改文件名软件,AdvancedRenamer拥有比较强大的修改文件名功能,能够快速方便地对文件或文件夹进行修改名称,你可以在它的命名方案列表中添加方案,有新名称、新写法、移......
  • AI批量剪辑助手视频批量自动剪辑软件
    批量剪辑助手是一款视频批量自动剪辑软件,具有智能化、批量化、操作简单等特点。该软件适用于自动化处理和生产视频,旨在帮助用户实现批量化生产产品推广视频的功能。三、安装与配置安装步骤:下载程序压缩包:访问官方网站或指定下载地址,下载小咖批量剪辑助手程序压缩包。b.......