моя хранимая процедура в 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 дает одинаковые результаты), которая без проблем запускает эту хранимую процедуру.
Спасибо за вашу помощь.