Изменение сопоставления таблицы Mysql - PullRequest
1 голос
/ 16 октября 2019

У меня есть старая таблица с несколькими испанскими ключевыми словами. Его сопоставление - latin1_swedish_ci.
Столбец с ключевыми словами имеет первичный индекс.
Когда я пытаюсь изменить сопоставление на utf8_general_ci, это невозможно, поскольку if находит дубликаты.
С этим индексом это невозможно.
Что происходит, например, то, что "каньяда" принимается за "канаду", которая уже существует, но это разные слова.
Это было с использованием phpMyAdmin.
Еще одна попытка была экспортировать таблицу как file.sqlи используя
sed 's/STRING_SOURCE/STRING_REPLACE/'
, но в конце источник mysql выдал мне ту же ошибку (ожидал, что:))
Я также пробую эту последнюю со всей базой данных.

MySQL версии 5.5.64-MariaDB
phpMyAdmin, выбрал базу данных / таблицу, вкладку Structure, столбец с выбранными ключевыми словами Change и, наконец, из выпадающего списка Collation, который я выбрал ut8_general_ci

Howя могу сделать это изменение, сохранив все ключевые слова?

1 Ответ

1 голос
/ 19 октября 2019

Поскольку вы ориентированы на испанский, используйте испанское сопоставление, а не общее: utf8_spanish_ci и utf8_spanish2_ci. Они трактуют ñ как отдельную букву между n и o. Другие сопоставления обрабатывают ñ и n как одно и то же.

Между тем, ç=c.

Однако ll обрабатывается как два l с помощью utf8_spanish_ci, а обрабатываетсяпосле следующего: lz от utf8_spanish2_ci. (Что-то о словаре по сравнению с телефонной книгой - помните те артефакты из древней истории?)

Ссылка: http://mysql.rjweb.org/utf8_collations.html

Как только вы обновитесь до 8.0, будет еще два варианта: utf8mb4_es_0900_ai_ci иutf8mb4_es_trad_0900_ai_ci.

Ссылка: http://mysql.rjweb.org/utf8mb4_collations.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...