моя хранимая процедура в MySQL завершается с ошибкой Mysql::Error: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
.
Процедура завершается неудачно, когда в предложении SELECT
она пытается сравнить столбец VARCHAR
с параметром VARCHAR
, переданным этой процедуре.
Все столбцы в моих таблицах имеют параметры сортировки utf8_unicode_ci
. Сортировка базы данных такая же. Я даже указал параметры сортировки в `/config/database.yml.
Однако, когда я запускаю /script/console
, у меня установлены следующие переменные:
>> ActiveRecord::Base.connection.select_rows "show variables like '%colla%'"
=> [["collation_connection", "utf8_general_ci"], ["collation_database", "utf8_unicode_ci"], ["collation_server", "utf8_general_ci"]]
И, возможно, самый интересный факт заключается в том, что у меня есть другая база данных на том же сервере MySQL с такими же параметрами сортировки (даже запрос переменных параметров сравнения из консоли Rails дает те же результаты), которая без проблем запускает эту хранимую процедуру.
Спасибо за вашу помощь.