Привет, ребята, есть ли безопасный способ преобразовать таблицу из latin1_swedish в полностью utf8?
Кто-то может объяснить мне, как это сделать?
(возможно, используя phpmyadmin dunno)
Я полагаю, latin1_swedish_ci - сопоставление по умолчанию для вашего сервера базы данных.В этом случае я использую следующие параметры сортировки:
Может быть несколько решений этой проблемы, но следующее решение работало для меня и в некоторых наихудших сценариях.
Шаги:
Заполнить новую таблицу данными в старой таблице, используя CONVERT .
- Копировать структуру таблицы
CREATE TABLE `table_name` LIKE `old_table_name`;
- Изменить параметры сортировки, как вам нравится
ALTER TABLE` table_name`
CHANGE `column_name1`` column_name1` VARCHAR (100) CHARACTER SETutf8 COLLATE utf8_unicode_ci NULL,
CHANGE `column_name2`` column_name2` VARCHAR (100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL;
- импортировать данные
INSERT INTO `table_name` (`id`, `column_name1`,` column_name2`, `column_name3`)
SELECT` id`,
CONVERT (CONVERT (_latin1 `column_name1` ИСПОЛЬЗОВАНИЕ двоичного файла) ИСПОЛЬЗОВАНИЕ utf8) collate utf8_unicode_ci,
CONVERT (CONVERT (_latin1 `column_name2` ИСПОЛЬЗУЕТ двоичный файл) ИСПОЛЬЗУЕТ utf8) сопоставлять utf8_unicode_ci,
` column_name3`
ОТ `old_table_name`
charset
collation
Я не уверен в каких-либо конкретных ловушках при переходе на / из utf8, но резервная копия должна хорошо вам служить, если что-то пойдет не так.