MySQL はケース・センシティブ?
ここでは MySQL がケース・センシティブなのかどうかについてご説明します。
MySQL はケース・センシティブ?
MySQL のオブジェクトには、ケース・センシティブでないものと、OS によってケース・センシティブなものがあります。
ケース・センシティブではないもの
カラム、インデックス、ストアドプロシージャやユーザー定義関数、イベント、パティションなどはケース・センシティブではありません。
OS によってケース・センシティブなもの
OS によってケース・センシティブなものには、データベース、テーブル、トリガー、テーブルエイリアス、ログファイルグループ名などがあります。
どの OS だとケース・センシティブになるかは、ファイルシステムがケース・センシティブかどうかによります。
Windows ではケース・センシティブではなく、macOS も、デフォルトのファイルシステムで使っている場合はケース・センシティブではありません。
多くの Unix ではケース・センシティブになります。
例えば、次のようなクエリーは Windows では大丈夫ですが、Unix ではエラーになる可能性が高いです。
SELECT S.first_name
FROM students AS s
MySQL には、lower_case_table_names というシステム変数があり、その値によってテーブル名やデータベース名が小文字に変換されるかどうかなどの設定ができ、OS によってデフォルト値がちがいます。
OS による違いを避けるために、MySQL のオブジェクトを作ったり参照する時には、小文字で統一しておくのが推奨されています。
以上、MySQL がケース・センシティブかどうかについてご説明しました。