Я импортировал документ Excel в MySQL, чтобы привести в порядок и лучше использовать данные, но у меня возникли проблемы с запуском обновления.
Все таблицы, используемые в качестве примеров ниже;
Столы
asset_register
Телефон
сим
Команда
asset_register содержит следующие поля:
id INT,
serialNo VARCHAR,
simNo INT,
team VARCHAR
Проблема в том, что я хочу создать командную таблицу и ссылку на teamId в таблице asset_register.
Имеет ли это смысл? Вместо того, чтобы сохранять фактическое название команды, я хочу использовать внешний ключ для таблицы команд.
Проблема заключается в обновлении всех данных в таблице asset_register, которые были импортированы из Excel. Команд почти нет среди пользователей (~ 500), и мне нужно написать запрос или хранимую процедуру, чтобы обновить все из них.
Я думал, что хранимая процедура будет способом пойти. Пока у меня есть следующее, но оно обновило значение team до NULL вместо идентификатора команды.
DELIMITER //
DROP PROCEDURE `updateCrews`//
CREATE DEFINER=`root`@`localhost` PROCEDURE `updateCrews`()
BEGIN
DECLARE rowCount INT;
DECLARE crewNameFromRegister VARCHAR(7);
DECLARE currentRow INT;
DECLARE newCrewdata VARCHAR(7);
SET rowCount=(SELECT COUNT(*) FROM asset_register);
SET currentRow = 1;
myUpdateLoop: WHILE (currentRow < rowCount) DO
SET crewNameFromRegister = (SELECT crewID FROM asset_register WHERE id = currentRow);
SET newCrewData = (SELECT id FROM crews WHERE crewName = crewNameFromRegister);
UPDATE asset_register SET crewID = newCrewData;
SET currentRow = currentRow + 1;
END WHILE myUpdateLoop;
END//
DELIMITER ;
Любая помощь будет принята с благодарностью, возможно, есть лучший способ сделать это, и толчок в правильном направлении был бы великолепен.