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 がケース・センシティブかどうかについてご説明しました。

© 2024 MySQL 入門