ホームページ > データベース > mysql チュートリアル > mysql の sql_mode 設定を修正するコツを教えます

mysql の sql_mode 設定を修正するコツを教えます

醉折花枝作酒筹
リリース: 2021-08-25 10:53:34
転載
3456 人が閲覧しました

sql_mode は見落とされやすい変数です。デフォルト値は null です。この設定では、不正なデータの挿入を許可するなど、一部の不正な操作が許可される可能性があります。この値は実稼働環境では厳密モードに設定する必要があるため、開発およびテスト段階で問題を発見できるように、開発およびテスト環境のデータベースも設定する必要があります。

1、SQL を実行して

select @@session.sql_mode;
ログイン後にコピー

グローバル レベルを表示します: 表示

select @@global.sql_mode;
ログイン後にコピー

2、修正

set @@session.sql_mode='xx_mode'
set session sql_mode='xx_mode'
ログイン後にコピー

グローバル レベル: 修正

set global sql_mode='xx_mode';
set @@global.sql_mode='xx_mode';
ログイン後にコピー

session は省略できます。デフォルトのセッションは現在のセッションでのみ有効です。
グローバルに変更する場合は、高度な権限が必要です。これは次の接続でのみ有効になり、現在のセッションには影響しません。 MySQL の再起動後は設定ファイル内の対応する値を再読み込みするため無効になります。永続的にする必要がある場合は、設定ファイル内の値を変更する必要があります。

vi /etc/my.cnf
ログイン後にコピー
errree

保存して終了し、サーバーを再起動すると、永続的に有効になります

sql_mode の一般的な値は次のとおりです:

ONLY_FULL_GROUP_BY

GROUP BY 集計操作の場合、SELECT の列が GROUP BY に現れない場合、その列が GROUP BY 句にないため、この SQL は無効になります

NO_AUTO_VALUE_ON_ZERO

この値は、自動拡張列の挿入に影響します。デフォルト設定では、0 または NULL を挿入すると、次の自動増加値が生成されます。このオプションは、ユーザーが値 0 を挿入する必要があり、列が自動増加する場合に便利です。

STRICT_TRANS_TABLES

このモードでは、トランザクション テーブルに値を挿入できない場合、現在の操作は中断され、非トランザクションに対する制限はありません。 tables

NO_ZERO_IN_DATE

厳密モー​​ドでは、日付または月をゼロにすることはできません。日付の月または日が 0 の値を含む限り、エラーが報告されますが、'0000-00-00 '例外

NO_ZERO_DATE

この値を設定すると、mysql データベースはゼロ日付の挿入を許可しません。ゼロの日付を挿入すると、警告ではなくエラーがスローされます。 0 以外の年、月、日のいずれかが要件を満たします。「0000-00-00」のみがエラー

ERROR_FOR_pISION_BY_ZERO

を報告します。 INSERT または UPDATE プロセス (データをゼロで除算すると、警告ではなくエラーが生成される場合)。モードが指定されていない場合、データがゼロで除算されると MySQL は NULL を返します

update table set num = 5 / 0; モードの設定後にエラーが報告されます。設定されていない場合、変更は次のようになります。成功すると、num の値は null

NO_AUTO_CREATE_USER

GRANT による空のパスワードを持つユーザーの作成を禁止します

#NO_ENGINE_SUBSTITUTION

必要なストレージ エンジンが無効になっているかコンパイルされていない場合、エラーがスローされます。この値が設定されていない場合、代わりにデフォルトのストレージ エンジンが使用され、例外がスローされます。

PIPES_AS_CONCAT

「||」を文字列接続演算子として扱う代わりにOR 演算子。これは Oracle データベースと同じであり、文字列スプライシング関数 Concat に似ています。

ANSI_QUOTES

ANSI_QUOTES を有効にした後は、二重引用符を使用できません。識別子として解釈されるため、文字列を引用符で囲むマーク

関連する推奨事項: "mysql チュートリアル "

以上がmysql の sql_mode 設定を修正するコツを教えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート