web-dev-qa-db-ja.com

MySQLでは列名とテーブル名の大文字と小文字が区別されますか?

category_idCategory_Idという列名がある場合、それらは異なりますか?

categoryCategoryというテーブルがある場合、それらは異なりますか?

64
shin

Unixでは、テーブル名は大文字と小文字が区別されます。 Windowsではそうではありません。楽しいですね。それぞれのファイルシステムが好きです。偶然だと思いますか?

言い換えれば、Linuxマシンへのデプロイを計画している場合は、LinuxベースのMySQLに対してもSQLをテストするか、prod時に不可解な「テーブルが見つかりません」エラーに備えてください。 VMは最近安価です。

関係なく、フィールド名は大文字と小文字を区別しません。

編集:私たちは、クライアントではなく、MySQL サーバーマシン上のオペレーティングシステムについて話している。

74
Seva Alekseyev

MySQLから ドキュメント

データベース名とテーブル名は、Windowsでは大文字と小文字が区別されず、ほとんどの種類のUnixでは大文字と小文字が区別されます。注目すべき例外の1つはMac OS Xです。これはUnixベースですが、大文字と小文字を区別しないデフォルトのファイルシステムタイプ(HFS +)を使用します。

そして

列名とインデックス名は、どのプラットフォームでも大文字と小文字が区別されず、列のエイリアスも区別されません。

19
Anitha.y

データベース名とテーブル名については、基になるオペレーティングシステムによって異なります。 8.2.2。識別子の大文字と小文字の区別 を参照してください

5
Pekka 웃

this を読む必要があるかもしれません。 MySQLで大文字と小文字の区別を設定することは可能ですが、実際には複数の環境で作業する場合にのみ問題になります。

3

奇妙なことに、WindowsでもMySQL Workbenchで大文字と小文字を区別するのにseemsです。

SELECTステートメントの結果を変更しようとしましたが、ワークベンチはクエリにテーブルのプライマリキーが含まれていない(それは小文字ですが)ので、結果は読み取り専用であると不満を言いませんでした。適切なケース(idではなくID)で主キーを使用して同じクエリを実行すると、期待どおりに結果を編集できます。

1