我创建了一个API来更新与外键相关联的记录

  1. 如果我只是给项赋值,所以我想让它返回,那么删除其他我没有赋值的值

  2. 如果我编辑项目中的一些值,所以我希望它返回我编辑的值

  3. 如果我把价值放在物品的价值上,所以我想让它返回物品的旧价值和我放在上面的价值

example: const record = {id:1,name:"abc",items:[{id:1,name:"abc",recordId:1},{id:2,name:"abcd",recordId:1}]}
const update = await dbRecord.update({id,name},{where: {id: req.params.id},include:[model:'items',id:[1,2]});

推荐答案

const update = await dbRecord.update({id,name},{where: {id: req.params.id}});
//array get from body 
ex: array = [{id:1,name:"abc",recordId:1},{id:2,name:"abcd",recordId:1}]
const itemId = array.map((arr) => arr.id);
// result = [1,2]

  await dbItems.bulkCreate(array, {
    updateOnDuplicate: ['name'],
  });

  for (var i = 0; i < update.items.length; i++) {
    const item = update.items[i];
    if (!itemId.includes(container.id)) {
      await container.destroy();
    }
  }


so it create update delete in once time.

Postgresql相关问答推荐

为什么更新不设置较晚的结束时间?

无法使用PGx连接到Postgres数据库AWS RDS

Postgres如何插入带有十进制逗号的实数?

EF Core和npgsql连接池已被耗尽

Postgres数据库系统已准备好接受连接和docker compose

查找行中的最小值

有对(type_id,element_id),如(1,1),(1,2),..(5,3).如果我需要获取没有 element_id 1 的类型 ID,如何从结果中排除 type_id?

使用包含重复元素的数组 Select 重复值

将数组插入 Postgresql 数据库

PostgreSQL:根据排序顺序仅 Select 每个 id 的第一条记录

INSERT RETURNING 是否保证以 right的顺序返回?

!= 和 <> 运算符有什么区别?

在 CentOS 上安装 psycopg2 时遇到问题

如何使用 pg_dump 或 psql 从 *.sql 恢复 PostgreSQL 表?

如何在数据库表中查找重复条目?

SQL - 提示引用列

manage.py 迁移时必须是关系 django_site 的所有者

PostgreSQL/JDBC 和 TIMESTAMP 与 TIMESTAMPTZ

PostgreSQL 9 在 Windows 上安装:Unable to write inside TEMP environment path.

PL/pgSQL 中的 BREAK 语句