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コンソールは同じ結果を出します)、このストアドプロシージャは問題なく実行されます。
ありがとうございました。クイックフィックスへ
を使用して再作成し、データベースに必要になります理由。この質問に時間を費やしてくれてありがとう。 – skalee