mysql 大文字と小文字を区別する設定に関連する 2 つのパラメータ、 lower_case_file_system および lower_case_table_names 。
#現在の mysql の大文字と小文字を区別する設定を表示します
show global variables like '%lower_case%';+------------------------+-------+| Variable_name | Value | +------------------------+-------+| lower_case_file_system | ON | | lower_case_table_names | 0 |+------------------------+-------+
#ON
大文字と小文字を区別しないOFF 大文字と小文字を区別する
lower_case_table_names
を示しますテーブル名の大文字と小文字が区別され、変更できるかどうか。
lower_case_table_names = 1 の場合、mysql は操作を実行する前にまずテーブル名を小文字に変換します。
my.cnf ファイルを開き、次のステートメントを追加して再起動します。
lower_case_table_names = 0 或 lower_case_table_names = 1
CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
select count(*) from user; +----------+| count(*) | +----------+| 0 | +----------+
select count(*) from User;ERROR 1146 (42S02): Table 'user.User' doesn't exist
lower_case_table_names=0 の場合、テーブル名は大文字と小文字が区別されます。
select count(*) from user; +----------+| count(*) | +----------+| 0 | +----------+
select count(*) from User; +----------+| count(*) | +----------+| 0 | +----------+
#3. lower_case_table_names=1 に設定すると、 lower_case_table_names=0 のときに作成された元のテーブルでは、
デモ
CREATE TABLE `User` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;show tables; +----------------+| Tables_in_user | +----------------+| User | +----------------+
次に、 lower_case_table_names=1
クエリを実行すると、テーブル名が大文字か小文字かに関係なく、テーブルが存在しないというメッセージが表示されます
select * from User;ERROR 1146 (42S02): Table 'user.user' doesn't existselect * from user;ERROR 1146 (42S02): Table 'user.user' doesn't existselect * from USER;ERROR 1146 (42S02): Table 'user.user' doesn't exist
lower_case_table_names=1 の場合、テーブル名を小文字に変換して操作するため、ファイル内に小文字のテーブル名ファイルが存在しないため、エラーとなります。
解決策:
この記事では、MySQL の大文字と小文字を区別する構成の問題について説明します。関連コンテンツの詳細については、PHP 中国語 Web サイトを参照してください。 関連する推奨事項:
phpcurl を使用して実装する方法複数のプロセス ダウンロード ファイル クラス
#php を使用してローカル ファイルとリモート ファイルが存在するかどうかを確認する方法
以上がmysql の大文字と小文字を区別する設定の問題の解釈の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。