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

Wie gestaltet man eine Webseite? Wie erstelle ich eine Webseite?

Wenn es um das Verständnis von Webdesign geht, sc...

jQuery erzielt den Effekt einer Werbung, die nach oben und unten gescrollt wird

In diesem Artikel wird der spezifische Code von j...

Eine kurze Analyse der parallelen WriteSet-Replikation von MySQL

【Historischer Hintergrund】 Ich arbeite seit drei ...

Warum wird für die Webseitenkodierung UTF-8 statt GBK oder GB2312 verwendet?

Wenn Sie die Wahl haben, sollten Sie UTF-8 verwen...

Hinweise zur Verwendung der verknüpften Liste des Linux-Kernel-Gerätetreibers

/******************** * Anwendung von verknüpften...

25 Vue-Tipps, die Sie kennen müssen

Inhaltsverzeichnis 1. Beschränken Sie Requisiten ...

HTML 5 Stylesheet zurücksetzen

Dieser CSS-Reset basiert auf dem CSS-Reset von Eri...

Ich habe ein paar coole Designseiten zusammengestellt, die ich gut finde.

Sie müssen Inspiration haben, um eine Website zu g...

Vue ruft die PC-Kamera auf, um die Fotofunktion zu realisieren

In diesem Artikelbeispiel wird der spezifische Co...