如何使用续集在一个数据库请求中将数据插入到多个表中?

编程入门 行业动态 更新时间:2024-10-06 16:22:27

如何使用续集在一个数据库请求中将数据插入到<a href=https://www.elefans.com/category/jswz/34/1771377.html style=多个表中?"/>

如何使用续集在一个数据库请求中将数据插入到多个表中?

我有以下关系:

协会是:

  users.belongsToMany("roles", {
    through: "userRoles",
  });

[创建用户时,我这样做:

register: async (obj, args, context, info) => {
  const PasswordHash = await bcrypt.hash(args.input.Password, 12);

  const user = db.users.create({
    ...args.input,
    Password: PasswordHash,
  });

  db.userroles.create({
    UserId: user.Id,
    RoleId: args.input.roleId,
  });
},

如何在一个请求中执行此操作?现在我在创建用户时正在做一个,然后获取新创建用户的ID并向该用户添加角色(请求2)。

后续,可以说我将有一个以上的联结表绑定到用户表,我又将如何插入一个数据库请求中的所有表?

回答如下:

除非您要在MySQL中创建自定义存储过程,否则无法同时创建用户和添加角色。

让我们尝试简化您的问题。创建用户之前,您不知道USER ID。因此,不可能在创建用户之前创建角色。解决此问题的一种方法是在代码中生成用户ID。

您可以在“用户”表中添加一个称为GeneratedId的额外列,并将ID列转换为AUTO_INCREMENT,然后在插入用户之前使用https://www.npmjs/package/uuid之类的包来生成唯一ID。

使用相同的生成ID将角色与用户相关联(“ UserRole”表中的“ UserId”列将包含您在代码中生成的ID。

现在您可以添加用户和所有相关数据,而无需等待服务器的答复。

更多推荐

如何使用续集在一个数据库请求中将数据插入到多个表中?

本文发布于:2024-05-07 05:50:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754605.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   在一   续集   如何使用   中将

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!