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'; 

您可以执行以下代码。