データベースを H2 から MySQL に変換しています。H2 がそのテーブルをエクスポートする方法は、すべて IN_UPPERCASE_CHARACTERS という名前です。照合はデータにのみ適用され、テーブル名を手動で置き換えることはできますか?
1 に答える
MySQL 照合は、データベース内の列の内容にのみ適用されます。それらは問題の要因ではありません。
列名、インデックス名などはすべて大文字と小文字が区別されません。
Windows および Mac HFS では、テーブル名はファイル名と同様に大文字と小文字が区別されません。Linux / BSD / Unix では、ファイル名と同様に大文字と小文字が区別されます。
これらすべてを使いこなすためにできることはたくさんあります。こちらをご覧ください。
http://dev.mysql.com/doc/refman/5.6/en/identifier-case-sensitivity.html
MySQL データベースが Windows (または Mac HFS) プラットフォームで実行されている場合は、おそらく何もしないでください。*nix ボックスにある場合は、テーブルの名前を変更して、クエリ コードと同じケースになるようにすることを検討してください。
RENAME `TABLENAME` TO `tablename`
または、 を設定しlower_case_table_names=1
、すべてのテーブルの名前を小文字に変更して、そこから移動することを検討できます。これにより、おそらくデータベースを使用するための最も回復力のあるコーディング環境が得られます。これにより、コード内のテーブル名の大文字と小文字が区別されなくなります。もちろん、名前の異なる 2 つのテーブルがtablecase
あり、TABLECASE
これは機能しません。