【问题标题】:SQL insert a User roleSQL 插入用户角色
【发布时间】:2017-02-17 23:51:56
【问题描述】:

我在数据库中有以下用户/角色表结构。我想设置一个角色(例如,用户的“客户”)。这样角色 id 以及适当的用户 id 将被插入到 User_Roles 表中。正确的 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
-------------------------------

【问题讨论】:

    标签: mysql sql database postgresql insert


    【解决方案1】:

    你可以这样做:

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

    【讨论】:

      【解决方案2】:

      可以执行以下代码:

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

      其中数字“2”代表您要为其赋予角色的用户的 ID。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-16
        • 2010-11-12
        • 2011-02-17
        • 1970-01-01
        • 2019-04-12
        • 2013-06-16
        相关资源
        最近更新 更多