最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

网站源码admin18浏览0评论

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

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

我有以下关系:

协会是:

  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。

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

发布评论

评论列表(0)

  1. 暂无评论