SQL插入用户角色

时间:2017-02-17 23:51:56

标签: mysql sql database postgresql insert

我在数据库中有以下用户/角色表结构。我想设置一个角色(例如,用户的“CUSTOMER”)。这样角色id将被插入到User_Roles表中以及相应的用户ID。什么是正确的SQL查询?

我试过了:

INSERT INTO user_roles (user_id, role_id)
SELECT users.id, 3
FROM users
WHERE users.id = 1

有更好的方法吗?

---- Users Table ---------
ID | UserName | Password
 1 | SomeUser | *****
--------------------------

---- Roles Table ---------
ID | Role
 1 | CUSTOMER
 2 | ADMIN
--------------------------

---- User_Roles Table ---------
UserID | RoleID
     1 |      1
     1 |      2
-------------------------------

2 个答案:

答案 0 :(得分:0)

您可以执行以下代码:

INSERT INTO User_Roles VALUES(2,(SELECT id FROM Roles WHERE Role = "CUSTOMER"));

数字“2”表示您要为其提供角色的用户的ID。

答案 1 :(得分:0)

你可以这样做:

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