Я пытаюсь изменить значения varchar столбца на его значение внешнего ключа из другой таблицы, и я не могу сделать преобразование, всегда выдает ошибку.Изменение столбца varchar на внешний ключ другой таблицы SQL
стол пользователя ...
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 стол ...
create table rolename(
RoleId int not null auto_increment,
RoleName varchar(50),
primary key(RoleId)
);
insert into rolename(RoleName) select distinct RoleName from user;
Теперь, что мне нужно сделать, это столбец RoleName в пользователя table указывает на ключ в таблице RoleName. Я все время пытаюсь это сделать, но всегда дает мне ошибку.
update user set user.`RoleName` = rolename.`RoleId` from user inner join rolename on user.`RoleName` = rolename.`RoleName`;
Я не уверен, если я устанавливаю внешний ключ правильно с этим кодом либо ...
Это были издевательские данные для обучения без надзоров, я не писал базу данных, просто таблицу поиска, но спасибо за головы! – remedy