MySQL の大文字と小文字の区別に関する注意

MySQL の大文字と小文字の区別に関する注意

このため、Alibaba の規則では以下が求められています。

[必須] テーブル名とフィールド名には小文字または数字を使用する必要があります。数字で始まったり、2 つのアンダースコアの間に数字だけが含まれていたりすることはできません。データベースのフィールド名を変更するには多大なコストがかかり、事前リリースが不可能なため、フィールド名は慎重に検討する必要があります。

したがって、不要なトラブルを避けるため、データベース名、テーブル名、フィールド名には大文字は使用できません。

MySQLの大文字と小文字の区別はパラメータによって制御されます

MySQL の大文字と小文字の区別の設定に関連するパラメーターは、lower_case_file_system と lower_case_table_names の 2 つです。

MySQLの大文字と小文字を区別する現在の設定を表示するには、次の文を使用します。

'%lower_case%' のようなグローバル変数を表示します。

+------------------------+-------+
| 変数名 | 値 |
+------------------------+-------+
| 小文字ファイルシステム | オン |
| 小文字のテーブル名 | 0 |
+------------------------+-------+

パラメータの説明は次のとおりです。

1.lower_case_file_system は、現在のシステム ファイルが大文字と小文字を区別するかどうかを示し、読み取り専用パラメーターであり、変更できません。 ON では大文字と小文字は区別されませんが、OFF では大文字と小文字が区別されます。

  • この変数は、データが保存されているオペレーティング システムのファイル ディレクトリが大文字と小文字を区別するかどうかを示します。 OFF の場合、ファイル名は大文字と小文字を区別し、ON の場合、大文字と小文字を区別しません。この変数は読み取り専用であり、ファイル システムのプロパティを反映するため、これを設定してもファイル システムには影響しません。

2.lower_case_table_names は、テーブル名が大文字と小文字を区別するかどうかを示します。これは変更できます。パラメータは 0、1、2 の 3 つです。

  • 0 大文字と小文字を区別します。 (Unix、Linux のデフォルト) 作成されたライブラリ テーブルはそのままディスクに保存されます。たとえば、create database TeSt; は TeSt ディレクトリを作成し、create table AbCCC ... は AbCCC.frm ファイルをそのまま生成し、SQL ステートメントもそのまま解析されます。
  • 1 大文字と小文字は区別されません。 (Windows のデフォルト) ライブラリ テーブルを作成すると、MySQL はすべてのライブラリ テーブル名を小文字に変換し、ディスクに保存します。 SQL ステートメントは、ライブラリ名とテーブル名も小文字に変換します。 以前に作成した Testtable をクエリする必要がある場合 (Testtable.frm ファイルを生成)、select * from Testtable を実行しても、select * from testtable に変換され、エラー テーブルが存在しなくなります。
  • 2 大文字と小文字を区別しない (OS X のデフォルト) 作成されたライブラリ テーブルはそのままディスクに保存されますが、SQL ステートメントによってライブラリ テーブル名が小文字に変換されます。

MySQLの大文字と小文字の区別を設定する方法

Linux システムの my.cnf ファイルと Windows システムの my.ini ファイルを変更し、次の内容を追加または変更します。

lower_case_table_names = 0 または lower_case_table_names = 1

次に、変更を有効にするために MySQL サービスを再起動します。

開発ノート

  • lower_case_table_names を 0 (区別あり) から 1 (区別なし) に変更する場合は、まず古いデータ テーブルのテーブル名を処理し、すべてのデータベースのテーブル名を小文字に変更してから、lower_case_table_names を 1 に設定する必要があります。そうしないと、テーブル名が見つからないという問題が依然として発生します。
  • lower_case_table_names のデフォルト値は、Windows では 1 (無差別)、macOS では 2 (無差別) です。 Linux では、値 2 はサポートされていないため、サーバーは値を 0 (敏感) に強制します。
  • また、MySQL の担当者は、データ ディレクトリが大文字と小文字を区別しないファイル システム (Windows や macOS など) 上にある場合は、lower_case_table_names を 0 に設定してはならないことも注意喚起しています。
  • そうしないと、MySQL サービスは起動に失敗します。

要約する

オペレーティング システムによって大文字と小文字の区別のデフォルト設定が異なるため、開発中にこれに注意し、意味のない落とし穴を避けるためにすべての SQL ステートメントで小文字を使用する必要があるという厳格な認識を養う必要があります。

以上がMySQLの大文字と小文字の区別に関する注意事項の詳細です。MySQLの大文字と小文字の区別の詳細については、123WORDPRESS.COMの他の関連記事にも注目してください。

以下もご興味があるかもしれません:
  • MySQLの文字タイプは大文字と小文字を区別します
  • MySQL で大文字と小文字を区別しないように設定する方法
  • MySQLの大文字と小文字の区別によって発生する問題の分析
  • MySQLクエリで大文字と小文字を区別しない問題を解決する方法
  • MySQL データベースの大文字と小文字の区別の問題
  • MySQLテーブル名の大文字と小文字を区別しない設定方法の詳細な説明
  • Linux システム MySQL のパスワードを忘れた場合、パスワードをリセットし、テーブル名と列名の大文字と小文字を無視します
  • MySQL クエリ時に文字列の大文字と小文字を区別する方法
  • MySql クエリの大文字と小文字を区別しないソリューション (2)
  • MySQL テーブル名の大文字と小文字の選択

<<:  HTML に埋め込まれた Flash HTML ウェブページ コードに Flash ファイルを埋め込むソリューション (パート 2)

>>:  nginx 設定ファイルで環境変数を使用する方法

推薦する

ES6 クラス継承を使用してゴージャスなボール効果を実現する方法

目次導入実装手順キャンバス環境を作成するライティングボールBallクラスを継承するMoveBallク...

MySQL テーブルタイプ ストレージエンジンの選択

目次1. 現在のデータベース支出のストレージエンジンを表示する方法1:方法2: 2. ENGINE=...

MySQLデータベースでゼロ値を含む日付の問題について簡単に説明します

デフォルトでは、MySQL は日付に 0 値を挿入することを受け入れますが、実際には日付の 0 値に...

JavaScript で配列の最大値と最小値を実装する 6 つの方法

配列[1,8,5,4,3,9,2]が与えられた場合、配列の最大値9と最小値1を取得するアルゴリズムを...

ローカルのMySQLをサーバーデータベースに移行する方法

Linux の scp コマンド (Windows では scp は使用できません) と、mysql...

デジタルテーブル特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたデジタル時計エフェクトを紹介します。エフェクトは次のとお...

ナビゲーションバーのドロップダウンメニューのサンプルコードを実装するためのHTML+CSS

効果コード内の画像は自分で変更できますドロップダウンメニューのHTMLコード <ヘッダークラ​...

Linux ユーザー グループと権限の概要

ユーザーグループLinux では、すべてのユーザーはグループに属する必要があり、Linux には次の...

nginx 503 サービスが一時的に利用できない問題を解決する方法

最近、ウェブサイトを更新すると、503 Service Temporarily Unavailabl...

SQL と MySQL のステートメント実行順序の分析

今日、問題が発生しました: MySQL の insert into、update、delete ステ...

MySQLクエリ条件のnot inとinの違いと理由

まずSQLを書く SELECT DISTINCT from_id タラから cod.from_id ...

HTML で入力テキスト入力キャッシュのクリアを禁止する 2 つの方法

ほとんどのブラウザはデフォルトで入力値をキャッシュし、ctl+F5 を使用して強制的に更新することに...

さまざまなブラウザでのhrタグの説明

通常、人事担当者と会うことはめったにありませんが、一度会うと、それが生死を分けることもあります。 H...

「@INC で ExtUtils/MakeMaker.pm が見つかりません」というエラーを解決する

mha4mysql をインストールする場合の手順は、おおよそ次のようになります: unzip、per...

MySQL でスロークエリログを有効にする方法

1.1 はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメ...