1 はじめに
MySQL では、データベースはデータ ディレクトリ内のディレクトリに相当します。データベース内の各テーブルは、データベース ディレクトリ内の少なくとも 1 つのファイルに対応します (ストレージ エンジンによっては複数の場合があります)。したがって、使用するオペレーティング システムの大文字と小文字の区別によって、データベース名とテーブル名の大文字と小文字の区別が決まります。
データベース名とテーブル名は、ほとんどの Unix では大文字と小文字が区別されますが、Windows では大文字と小文字が区別されません。注目すべき例外の 1 つは Mac OS X です。Mac OS X は Unix をベースとしていますが、大文字と小文字を区別しないデフォルトのファイル システム タイプ (HFS+) を使用します。ただし、Mac OS X は、Unix と同様に大文字と小文字が区別される UFS ボリュームもサポートします。
変数 lower_case_file_system は、データ ディレクトリが配置されているファイル システムがファイル名の大文字と小文字を区別するかどうかを示します。 ON はファイル名の大文字と小文字が区別されないことを示し、OFF はファイル名が大文字と小文字を区別することを示します。
たとえば、Windows で表示してください:
これは、Windows システムでは大文字と小文字が区別されず、mysql もデフォルトで大文字と小文字が区別されないように設定されていることを意味します。
2 大文字と小文字の区別ルール
Linux では:
データベース名とテーブル名は厳密に大文字と小文字が区別されます。
テーブルのエイリアスは厳密に大文字と小文字が区別されます。
列名と列のエイリアスは、すべての場合で厳密に大文字と小文字が区別されます。以下は大文字と小文字を区別しません。
変数名も厳密に大文字と小文字が区別されます。
Windows の場合:
大文字と小文字が区別されません。
Mac OS (非 UFS ボリューム) の場合:
大文字と小文字が区別されます。
3 パラメーターdescription ( lower_case_table_names ) UNIX での lower_case_table_names のデフォルト値は 0 です。Windows でのデフォルト値は 1 です。Mac OS X でのデフォルト値は 2 です。
保存CREATE TABLE または CREATE DATABASE ステートメントで指定された大文字と小文字を使用して、ハード ディスク上のテーブル名とデータベース名を指定します。名前の比較では大文字と小文字が区別されます。 Windows や Mac OS などの大文字と小文字を区別しないオペレーティング システムでは、このパラメータを 0 に設定できません。大文字と小文字で MyISAM テーブル名にアクセスすると、インデックスが破損する可能性があります。 |
1 |
2 | |
4 大文字と小文字を区別するものから大文字と小文字を区別しないものに変換する方法 | 作成した元のライブラリやテーブルが大文字と小文字を区別するもので、大文字と小文字を区別しないものに変換したい場合は、主に次の作業が必要です。次の 3 つのステップ: |
5 注意事項
大文字化による問題を回避するために、データベース、テーブル、列を定義するときは、すべて小文字と下線を使用し、大文字は使用しないことをお勧めします。どのシステムでも lower_case_tables_name=1 を使用できます。このオプションを使用する場合の欠点は、SHOW TABLES または SHOW DATABASES を使用するときに、名前が元々大文字であったか小文字であったかを確認できないことです。
Unix では、 lower_case_tables_name を 1 に設定する前に lower_case_tables_name = 0 の場合、mysqld を再起動する前に古いデータベース名とテーブル名を小文字に変換する必要があることに注意してください。
関連する推奨事項:
Mysql の my.ini に lower_case_table_names = 0 を追加して、テーブルの _MySQL
以上がmysql运维- lower_case_table_namesの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。