MySQL sql_modeクエリと設定の詳細な説明

MySQL sql_modeクエリと設定の詳細な説明

1. SQLを実行して表示する

@@session.sql_mode を選択します。

グローバルレベル: 表示

@@global.sql_mode を選択します。

2. 変更

@@session.sql_mode='xx_mode' を設定します
セッション sql_mode='xx_mode' を設定します

グローバルレベル: 変更

グローバル sql_mode を 'xx_mode' に設定します。
@@global.sql_mode='xx_mode' を設定します。

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

vi /etc/my.cnf
[mysqld]
sql-mode = "xx_mode"

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

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

完全グループ化のみ

GROUP BY 集計操作の場合、SELECT 内の列が GROUP BY に表示されない場合は、列が GROUP BY 句にないため、この SQL は無効です。

ゼロ以外

この値は、自動インクリメント列への挿入に影響します。デフォルトでは、0 または NULL を挿入すると、次の自動インクリメント値が生成されます。このオプションは、ユーザーが値 0 を挿入し、列が自動増分されている場合に便利です。

STRICT_TRANS_TABLES

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

日付にゼロがない

厳密モードでは、日または月をゼロにすることはできません。日付の月または日にゼロ値が含まれている場合、'0000-00-00' を除き、エラーが報告されます。

日付なし

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

ゼロ除算エラー

INSERT または UPDATE 中にデータがゼロで除算されると、警告ではなくエラーが生成されます。このモードが指定されていない場合、値がゼロで除算されると、MySQL は NULL を返します。
update table set num = 5 / 0 ; このモードが設定されている場合は、エラーが報告されます。設定されていない場合は、変更は成功し、numの値はnullになります。

いいえ

GRANT が空のパスワードを持つユーザーを作成しないようにする

エンジン代替なし

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

パイプASCONCAT

「||」をOR演算子ではなく文字列連結演算子として扱います。これはOracleデータベースと同じで、文字列連結関数Concatに似ています。

ANSI_QUOTES

ANSI_QUOTES が有効になっている場合、二重引用符は識別子として解釈されるため、文字列を引用符で囲むことはできません。

参考: https://blog.csdn.net/wyzxg/article/details/8787878

MySQL sql_mode クエリと設定の詳細な説明については、これで終わりです。MySQL sql_mode クエリの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL sql_mode の変更が有効にならない理由と解決策
  • MySQL での SQL モードの表示と設定の詳細な説明
  • MySQL の sql_mode モード例の詳細な説明
  • Django2 は MySQL に接続し、モデルテストの例を分析します。
  • MySQL sql_modeの適切な設定に関する詳細な説明
  • MySQL sql_mode の分析と設定の説明
  • MySQL 5.7 の sql_mode のデフォルト値によって生じる落とし穴と解決策
  • MySql バージョンの問題に対する完璧なソリューション sql_mode=only_full_group_by
  • MySQL 5.7.9 バージョンの sql_mode=only_full_group_by 問題を解決する
  • MySQL での SQL モードの使用法の詳細な説明
  • mysql sql_mode="" 関数の説明
  • MySQL sql_mode の使用に関する詳細な説明

<<:  XHTML の IE 条件付きコメント

>>:  dl、dt、dd リスト ラベルの例

推薦する

VMware15.5 インストール Ubuntu20.04 グラフィック チュートリアル

1. インストール前の準備1. 公式ウェブサイトからUbuntu 20.04のイメージファイルを直接...

円形グラデーションプログレスバー効果を実現する CSS サンプルコード

実装のアイデア一番外側は大きな円(グラデーションカラー)グラデーションの円を覆うように、内側に半円を...

バインドを使用してDNSサーバーを設定する方法

DNS(ドメインネームサーバー)は、ドメイン名とそれに対応する IP アドレスを変換するサーバーです...

MySQL で重複を削除するには、distinct または group by を使用する必要がありますか?

序文group by と distinctive のパフォーマンス比較について: インターネット上の...

Chrome プラグイン (拡張機能) 開発ガイド (完全デモ)

目次前面に書かれた序文ChromeプラグインとはChrome プラグイン開発を学ぶことの意義は何です...

WeChatアプレットの入力レベルとテキストエリアレベルの浸透率が高すぎる問題の解決策

WeChat ミニプログラムのネイティブ コンポーネントであるカメラ、キャンバス、入力 (フォーカス...

MySQL主キー命名戦略関連

最近、データライフサイクル管理の詳細を整理していたときに、小さな問題を発見しました。それは、MySQ...

Web ページ WB.ExecWB 制御印刷メソッド呼び出しの説明とパラメータの紹介

WebページWB.ExecWB制御印刷方法コードをコピーコードは次のとおりです。 <テーブルの...

ハイパーリンクを使用してリンクファイルを開く HTML 方式の紹介

a および href 属性 HTML では、英語ではアンカーと呼ばれるハイパーリンクを表すために &...

MySQL 8.0.17 のインストールと使用方法のチュートリアル図

前面に書かれた過去および現在のプロジェクトで最も一般的に使用されているリレーショナル データベースは...

MySQL での実行計画の explain コマンド例の詳細な説明

序文explain コマンドは、クエリ オプティマイザーがクエリの実行を決定した方法を確認する主な方...

Kafka と Nginx の統合例

背景nginx-kafka-module は、Kafka を nginx に統合して、Web プロジ...

WeChatアプレットでvantフレームワークを使用するための具体的な手順

目次1. アプレットのプロジェクト ディレクトリを開き、ファイルの場所を開きます。 2. プロジェク...

Vue3+TypeScriptは再帰メニューコンポーネントの完全な例を実装します

目次序文必要成し遂げる最初のレンダリングメニュー項目をクリックしますスタイルの区別デフォルトのハイラ...

Q&A: XML と HTML の違い

Q: xml と html の違いがわかりません。違いは何ですか? A: XMLと HTML の違い...