Ich versuche, die Varchar-Werte einer Spalte in den ID-Fremdschlüsselwert aus einer anderen Tabelle zu ändern, und ich kann nicht scheinen, die Konvertierung zu machen, wirft immer einen Fehler.Varchar-Spalte in Fremdschlüssel einer anderen Tabelle ändern SQL
Benutzertabelle ...
CREATE TABLE User(
UserId INT NOT NULL AUTO_INCREMENT,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Email VARCHAR(50),
Username VARCHAR(20) NOT NULL,
Password VARCHAR(50) NOT NULL,
RoleName VARCHAR(50) NOT NULL,
LastLogin DATETIME,
PRIMARY KEY(UserId)
);
INSERT INTO User
(FirstName, LastName, Email, Username, Password, RoleName)
VALUES
...
Rolename Tisch ...
create table rolename(
RoleId int not null auto_increment,
RoleName varchar(50),
primary key(RoleId)
);
insert into rolename(RoleName) select distinct RoleName from user;
Nun, was ich tun muß, ist die Rolename Spalte in dem Benutzer Tabelle zeigt auf den Schlüssel in der RoleName-Tabelle. Ich versuche das immer, aber gibt mir immer einen Fehler.
update user set user.`RoleName` = rolename.`RoleId` from user inner join rolename on user.`RoleName` = rolename.`RoleName`;
Ich bin nicht sicher, ob ich entweder den Fremdschlüssel richtig mit diesem Code Einrichten bin ...
Es war Mock-Daten für eine Inclass-Übung, ich habe nicht die Datenbank geschrieben, nur die Nachschlagetabelle, aber danke für die Köpfe hoch! – remedy