首页 > 解决方案 > 高效地在 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 updates 是否是解决此问题的正确方法。

这里的正确做法是什么?

附言

我正在使用 typeorm,但它允许抛出原始查询,因此也欢迎原始查询。

谢谢你。

标签: postgresqltypeorm

解决方案


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);


推荐阅读