mi procedimiento almacenado en MySQL falla con Mysql::Error: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
.Combinación ilegal de intercalaciones en el procedimiento almacenado
El procedimiento falla cuando en la cláusula SELECT
intenta comparar una columna VARCHAR
con el parámetro VARCHAR
pasado a este procedimiento.
Todas las columnas de mis tablas tienen utf8_unicode_ci
intercalación. La recopilación de la base de datos es la misma. Incluso he especificado la intercalación en `/config/database.yml.
Sin embargo, cuando corro /script/console
he puesto siguientes variables:
>> ActiveRecord::Base.connection.select_rows "show variables like '%colla%'"
=> [["collation_connection", "utf8_general_ci"], ["collation_database", "utf8_unicode_ci"], ["collation_server", "utf8_general_ci"]]
y posiblemente el hecho más interesante es que tengo otra base de datos en el mismo servidor MySQL con las mismas colaciones (incluso las consultas a las variables de intercalación de La consola Rails da los mismos resultados) que ejecuta este procedimiento almacenado sin ningún problema.
Gracias por su ayuda.
simplemente descubrí que uno de mis cuadros ha ordenación establecida en conjunto 'utf8_general_ci' que es inproper en mi base de datos y esto es la razón. Gracias por pasar tiempo en esta pregunta. – skalee