에서 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에 데이터 정렬을 명시했다.
>> 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 서버의 다른 데이터베이스를 가지고있다 : 나는 /script/console
을 실행할 때
그러나, 나는 다음과 같은 변수가 설정 한 Rails 콘솔은 동일한 결과를 제공함)이 저장 프로 시저를 아무 문제없이 실행합니다.
도움 주셔서 감사합니다. 빠른 수정으로
내 테이블 중 하나는 내 데이터베이스에 inproper utf8_general_ci' 세트'로 설정 정렬입니다시킨 것을이입니다 이유. 이 질문에 시간을내어 주셔서 감사합니다. – skalee