ホームページ  >  記事  >  データベース  >  sql_mode のさまざまなモードについて話しましょう

sql_mode のさまざまなモードについて話しましょう

藏色散人
藏色散人転載
2023-03-14 17:17:042105ブラウズ

この記事は、mysql に関する関連知識を提供します。主に sql_mode のさまざまなモードについて説明します。興味のある友人は以下を参照してください。すべての人に役立つことを願っています。

sql_mode のさまざまなモードについて話しましょう

#sql_mode の各モードの概要

View sql_mode

mysql> SHOW VARIABLES LIKE 'sql_mode';
+---------------+--------------------------------------------+
| Variable_name | Value                                      |
+---------------+--------------------------------------------+
| sql_mode      | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+--------------------------------------------+
1 row in set (0.16 sec)

STRICT_TRANS_TABLES

データの挿入または更新時に、フィールドの値をターゲット データ型に変換できない場合、MySQL はエラーを報告します。このモードはトランザクション テーブルにのみ適用されます。

#したがって、このモードの不一致により、同じコードが異なる環境でエラーを報告することになります。

このモードは innodb テーブル専用です

STRICT_ALL_TABLES

with STRICT_TRANS_TABLES は似ていますが、このモードは非 innodb テーブルを含むすべてのテーブルに適用されます。

ERROR_FOR_DIVISION_BY_ZERO

除算器がゼロの場合、MySQL はエラーをスローします。このモードが有効になっていない場合、MySQL は NULL を返します。

NO_AUTO_CREATE_USER

MySQL が GRANT ステートメントを使用して新しいユーザーを作成する場合、存在しないユーザーの作成は許可されません。このモードを有効にする場合は、最初にユーザーを手動で作成する必要があります。

NO_ENGINE_SUBSTITUTION

指定されたストレージ エンジンが存在しない場合、MySQL は別のストレージ エンジンに置き換えず、エラーを報告します。

ANSI_QUOTES

このモードが有効な場合、MySQL は二重引用符を文字列の引用符ではなく識別子の引用符として扱います。

IGNORE_SPACE

このモードが有効な場合、MySQL は SQL ステートメント内のスペースを無視します。これにより、SQL ステートメントの構造を変更せずに SQL ステートメントを美しくすることができます。

ONLY_FULL_GROUP_BY

このモードが有効な場合、すべての非集計カラムを GROUP BY ステートメントに含める必要があります。そうでない場合、MySQL はエラーを報告します。

NO_ZERO_IN_DATE

このモードが有効な場合、MySQL は日付または時刻にゼロ値を許可しません。

NO_ZERO_DATE

このモードが有効な場合、MySQL では「0000-00-00」の日付の使用が許可されません。

推奨学習: 「

MySQL ビデオ チュートリアル

以上がsql_mode のさまざまなモードについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。