2017-02-17 6 views
-1

Ich habe die folgende Benutzer/Rollen-Tabellenstruktur in einer Datenbank. Und ich möchte eine Rolle festlegen (zum Beispiel "KUNDE" für einen Benutzer). Damit wird die Rollen-ID in die Tabelle User_Roles sowie die entsprechende Benutzer-ID eingefügt. Was ist die richtige SQL-Abfrage dafür?SQL eine Benutzerrolle einfügen

Ich versuchte dies:

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

Gibt es einen besseren Weg, dies zu tun?

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

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

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

Antwort

0

Sie können einfach tun:

INSERT INTO user_roles (user_id, role_id) 
    VALUES (1, 3); 

Wenn Sie es nach dem Namen zu tun:

INSERT INTO user_roles (user_id, role_id) 
    SELECT 1, r.role_id 
    FROM roles r 
    WHERE r.name = 'CUSTOMER'; 
0

Sie können den folgenden Code ausführen:

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

Wo die Zahl „2“ stellen die ID des Benutzers, den Sie die Rolle geben wollen.