SQL插入用户角色
问题描述:
我在数据库中有以下用户/角色表结构。我想设置一个角色(例如,用户的“CUSTOMER”)。这样角色ID将被插入到User_Roles表以及相应的用户ID中。什么是正确的SQL查询?SQL插入用户角色
我尝试这样做:
INSERT INTO user_roles (user_id, role_id)
SELECT users.id, 3
FROM users
WHERE users.id = 1
有没有更好的方式来做到这一点?其中数字“2”代表你想给角色的用户的ID
INSERT INTO User_Roles VALUES(2,(SELECT id FROM Roles WHERE Role = "CUSTOMER"));
:
---- Users Table ---------
ID | UserName | Password
1 | SomeUser | *****
--------------------------
---- Roles Table ---------
ID | Role
1 | CUSTOMER
2 | ADMIN
--------------------------
---- User_Roles Table ---------
UserID | RoleID
1 | 1
1 | 2
-------------------------------
答
你可以这样做:
INSERT INTO user_roles (user_id, role_id)
VALUES (1, 3);
如果你想通过名字来做到这一点:
INSERT INTO user_roles (user_id, role_id)
SELECT 1, r.role_id
FROM roles r
WHERE r.name = 'CUSTOMER';
答
您可以执行以下代码。