postgresql - 高效地在 postgresql 中循环更新记录
问题描述
我有一堆看起来像这样的记录:
[
CategoryEntity { id: 11, position: 2 },
CategoryEntity { id: 12, position: 1 },
CategoryEntity { id: 13, position: 3 },
CategoryEntity { id: 14, position: 4 },
CategoryEntity { id: 15, position: 5 },
CategoryEntity { id: 17, position: 6 },
CategoryEntity { id: 16, position: 7 },
CategoryEntity { id: 19, position: 8 },
CategoryEntity { id: 18, position: 9 },
CategoryEntity { id: 20, position: 10 }
]
这些是我需要在类别表中更新的值。我知道它们都需要通过事务来完成,但我不确定执行多个await update
s 是否是解决此问题的正确方法。
这里的正确做法是什么?
附言
我正在使用 typeorm,但它允许抛出原始查询,因此也欢迎原始查询。
谢谢你。
解决方案
save - 将所有给定的实体保存在数据库中。如果数据库中不存在实体,则插入,否则更新。
所以,你可以使用TypeORM 的 .save()
方法:
const entities = [
{ id: 11, position: 2 },
{ id: 12, position: 1 },
{ id: 13, position: 3 },
{ id: 14, position: 4 },
{ id: 15, position: 5 },
{ id: 17, position: 6 },
{ id: 16, position: 7 },
{ id: 19, position: 8 },
{ id: 18, position: 9 },
{ id: 20, position: 10 }
];
categoryRepository.save(entities);
推荐阅读
- reactjs - 创建 react app eslint 更漂亮的配置
- c# - C#'System.StackOverflowException'
- date - Pyspark:202001 和 202053(yyyyww)to_date 给出 null
- java - Java int 数组查找和打印匹配
- java - 如何知道错误来自我的生产应用程序的哪个活动?
- sql - 在 SQL 中只插入唯一记录
- sql - 在 Redshift 中,如何从 stl_insert 获得准确的插入计数?
- node.js - 如何将调整大小的图像从锐利发送回用户?
- nestjs - Nest 无法解析 RabbitMQService 服务的依赖关系
- c - 可以存储在 long double 中的最大整数