Detaillierte Erläuterung der MySQL sql_mode-Abfrage und -Einstellung

Detaillierte Erläuterung der MySQL sql_mode-Abfrage und -Einstellung

1. Führen Sie SQL aus, um anzuzeigen

wählen Sie @@session.sql_mode;

Globale Ebene: Ansicht

wählen Sie @@global.sql_mode;

2. Änderung

Setzen Sie @@session.sql_mode='xx_mode'
setze Sitzungs-SQL_Modus='xx_mode'

Globale Ebene: Ändern

Setzen Sie den globalen SQL-Modus = "xx_mode".
Setzen Sie @@global.sql_mode='xx_mode';

Sitzung kann weggelassen werden, die Standardsitzung ist nur für die aktuelle Sitzung gültig. Wenn Sie sie global ändern möchten, benötigen Sie erweiterte Berechtigungen und sie wird erst bei der nächsten Verbindung wirksam. Sie wirkt sich nicht auf die aktuelle Sitzung aus und wird nach einem Neustart von MySQL ungültig, da MySQL beim Neustart den entsprechenden Wert in der Konfigurationsdatei erneut liest. Wenn Sie sie dauerhaft machen möchten, müssen Sie den Wert in der Konfigurationsdatei ändern.

vi /etc/meine.cnf
[mysqld]
SQL-Modus = "xx_Modus"

Speichern und beenden, den Server neu starten, dann wird es dauerhaft wirksam

Übliche Werte für sql_mode sind wie folgt:

NUR_VOLLSTÄNDIGE_GRUPPE_NUR

Bei GROUP BY-Aggregationsvorgängen gilt: Wenn die Spalten in SELECT nicht in GROUP BY erscheinen, ist dieses SQL ungültig, da die Spalten nicht in der GROUP BY-Klausel enthalten sind.

KEIN_AUTOMATISCHER_WERT_ BEI_NULL

Dieser Wert wirkt sich auf Einfügungen in Auto-Increment-Spalten aus. Standardmäßig wird durch das Einfügen von 0 oder NULL der nächste Auto-Inkrement-Wert generiert. Diese Option ist nützlich, wenn der Benutzer einen Wert von 0 einfügen möchte und die Spalte automatisch inkrementiert wird.

STRICT_TRANS_TABLES

Wenn in diesem Modus ein Wert nicht in eine Transaktionstabelle eingefügt werden kann, wird der aktuelle Vorgang unterbrochen und es gibt keine Einschränkung für nicht-transaktionale Tabellen.

KEINE_NULL_IM_DATUM

Im strikten Modus darf der Tag oder Monat nicht Null sein. Wenn der Monat oder Tag des Datums einen Nullwert enthält, wird ein Fehler gemeldet, mit Ausnahme von „0000-00-00“.

NO_ZERO_DATE

Durch Festlegen dieses Werts lässt die MySQL-Datenbank das Einfügen von Nulldaten nicht zu. Das Einfügen von Nulldaten führt zu einem Fehler statt einer Warnung. Jedes Jahr, jeder Monat und jeder Tag ungleich Null erfüllt die Anforderung, nur '0000-00-00' führt zu einem Fehler

FEHLER BEI DIVISION DURCH NULL

Wenn bei einem INSERT oder UPDATE Daten durch Null geteilt werden, wird ein Fehler und keine Warnung generiert. Wenn dieser Modus nicht angegeben ist, gibt MySQL NULL zurück, wenn der Wert durch Null geteilt wird.
update table set num = 5 / 0 ; Wenn dieser Modus eingestellt ist, wird ein Fehler gemeldet. Wenn er nicht eingestellt ist, ist die Änderung erfolgreich und der Wert von num ist null

KEIN_AUTO_CREATE_USER

Verhindern Sie, dass GRANT Benutzer mit leeren Passwörtern erstellt

KEIN_ENGINE_SUBSTITUTION

Wenn eine erforderliche Speicher-Engine deaktiviert oder nicht kompiliert ist, wird ein Fehler ausgegeben. Wenn dieser Wert nicht festgelegt ist, wird stattdessen die Standardspeicher-Engine verwendet und eine Ausnahme ausgelöst.

ROHRE_ALS_CONCAT

Behandeln Sie „||“ als Zeichenfolgenverkettungsoperator und nicht als ODER-Operator. Dies entspricht der Oracle-Datenbank und ähnelt der Zeichenfolgenverkettungsfunktion Concat

ANSI_QUOTES

Wenn ANSI_QUOTES aktiviert ist, können Sie keine Anführungszeichen zum Zitieren von Zeichenfolgen verwenden, da diese als Bezeichner interpretiert werden.

Referenz: https://blog.csdn.net/wyzxg/article/details/8787878

Dies ist das Ende dieses Artikels mit der detaillierten Erklärung der MySQL sql_mode-Abfrage und -Einstellungen. Weitere relevante MySQL sql_mode-Abfrageinhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Gründe und Lösungen für das Nicht-Wirksamwerden der MySQL-SQL-Modus-Änderung
  • Detaillierte Erklärung zum Anzeigen und Einstellen des SQL-Modus in MySQL
  • Detaillierte Erläuterung des SQL_Mode-Modusbeispiels in MySQL
  • Django2 stellt eine Verbindung zu MySQL her und analysiert Beispiele für Modelltests
  • Detaillierte Erklärung zu sinnvollen Einstellungen des MySQL sql_mode
  • MySQL sql_mode-Analyse und Einstellungserklärung
  • Die Fallstricke und Lösungen, die durch den Standardwert von sql_mode in MySQL 5.7 verursacht werden
  • Die perfekte Lösung für das MySql-Versionsproblem sql_mode=only_full_group_by
  • Lösen Sie das MySQL 5.7.9 Version sql_mode=only_full_group_by Problem
  • Detaillierte Erklärung der Verwendung des SQL-Modus in MySQL
  • mysql sql_mode="" Funktionsbeschreibung
  • Detaillierte Erläuterung der Verwendung von MySQL sql_mode

<<:  Bedingte Kommentare im Internet Explorer für XHTML

>>:  Beispiele für dl-, dt- und dd-Listenbezeichnungen

Artikel empfehlen

So installieren und konfigurieren Sie MySQL 5.7.19 unter CentOS 6.5

Die detaillierten Schritte zur Installation von m...

So fügen Sie Vite-Unterstützung zu alten Vue-Projekten hinzu

1. Einleitung Ich habe vor zwei Jahren ein Projek...

Der Prozess des Aufbaus einer Lampenarchitektur durch einen Docker-Container

Inhaltsverzeichnis 1. Ziehen Sie das Centos-Image...

IDEA verwendet das Docker-Plugin (Tutorial für Anfänger)

Inhaltsverzeichnis veranschaulichen 1. Aktivieren...

Implementierung eines laufenden Springboot-Projekts mit Docker

Einführung: Die Konfiguration von Docker, auf dem...

5 Dinge, die beim Schreiben von React-Komponenten mit Hooks zu beachten sind

Inhaltsverzeichnis 01. Verwenden Sie useState, we...

So legen Sie ein Kennwort für MySQL Version 5.6 auf dem Mac fest

MySQL kann bei der Installation festgelegt werden...

CentOS 7 kann nach dem Ändern der Netzwerkkarte nicht auf das Internet zugreifen

Ping www.baidu.com unbekannter Domänenname Ändern...

Detaillierte Erklärung des virtuellen DOM und des Diff-Algorithmus in React

Die Rolle des virtuellen DOM Zunächst müssen wir ...

Beispiel für den Aufbau eines Redis-Sentinel-Clusters basierend auf Docker

1. Übersicht Redis Cluster ermöglicht hohe Verfüg...

Erläuterung des Beispiels einer MySQL-Datenanalyse-Speicher-Engine

Inhaltsverzeichnis 1. Fälle vorstellen 2. Zeigen ...

So implementieren Sie Reaktionsfähigkeit beim Lernen des Vue-Quellcodes

Inhaltsverzeichnis Vorwort 1. Schlüsselelemente e...

Detailliertes Beispiel für das Datenbankbetriebsobjektmodell in Spring jdbc

Detailliertes Beispiel für das Datenbankbetriebso...