Sequelize:通过角色名称创建用户记录时获取外键值的方法
如何通过角色名称快速创建用户记录?
不需要单独查询Users_Role表再创建用户,有两种快捷方式可以一步完成:
1. 直接用SQL语句实现
在INSERT语句里嵌套SELECT查询,直接获取对应的role_id,一次操作完成插入:
INSERT INTO Users (user_id, user_role_id) VALUES ('1234', (SELECT role_id FROM Users_Role WHERE role_name = 'Admin'));
2. 使用ORM框架(以Sequelize为例)
如果你用的是Sequelize这类ORM,有两种简化方式:
- 先查角色再关联创建
const userRole = "Admin"; // 查询对应角色 const role = await Users_Role.findOne({ where: { role_name: userRole } }); // 直接用查到的role_id创建用户 await Users.create({ user_id: "1234", user_role_id: role.role_id }); - 利用模型关联特性
要是已经给Users和Users_Role模型设置了关联(比如Users.belongsTo(Users_Role)),可以直接通过角色实例创建用户:const userRole = "Admin"; await Users_Role.findOne({ where: { role_name: userRole } }) .then(role => role.createUser({ user_id: "1234" }));
内容的提问来源于stack exchange,提问作者For fun programmer
相关产品推荐
相关产品推荐

