Zusammenfassung der Merkmale des SQL-Modus in MySQL

Zusammenfassung der Merkmale des SQL-Modus in MySQL

Vorwort

Der SQL-Modus wirkt sich auf die von MySQL unterstützte SQL-Syntax und die von ihm durchgeführten Datenvalidierungsprüfungen aus.

Der MySQL-Server kann in verschiedenen SQL-Modi arbeiten und diese Modi für verschiedene Clients unterschiedlich anwenden, abhängig vom Wert der Systemvariablen sql_mode. Der DBA kann den globalen SQL-Modus so einstellen, dass er den Betriebsanforderungen des Site-Servers entspricht, und jede Anwendung kann ihren Sitzungs-SQL-Modus entsprechend ihren eigenen Anforderungen einstellen.

Der Modus wirkt sich auf die von MySQL unterstützte SQL-Syntax und die von MySQL durchgeführten Datenvalidierungsprüfungen aus. Dies erleichtert die Verwendung von MySQL in verschiedenen Umgebungen und die Verwendung von MySQL mit anderen Datenbankservern.

Werfen wir einen Blick auf die ausführliche Einführung.

Festlegen des SQL-Modus

Um den SQL-Modus zur Laufzeit zu ändern, legen Sie die globale oder sitzungsbezogene Systemvariable sql_mode mit der SET-Anweisung fest.

SETZEN SIE GLOBAL sql_mode = "Modi";
SETZEN SIE SESSION sql_mode = "Modi";

Modusliste

Modell Hinweise
ALLOW_INVALID_DATES Ungültige Daten erzeugen einen Fehler
FEHLER BEI DIVISION DURCH NULL Division durch 0 Fehler
KEINE_BACKSLASH_ESCAPES Das Backslash-Zeichen (\) ist als Escape-Zeichen in Zeichenfolgenliteralen verboten. Wenn dieser Modus aktiviert ist, verhält sich der Backslash wie jedes andere normale Zeichen.
KEINE_UNSIGNED_SUBTRAKTION Die Subtraktion zwischen ganzzahligen Werten (von denen einer vom Typ UNSIGNED ist) erzeugt standardmäßig ein vorzeichenloses Ergebnis. Wenn das Ergebnis ansonsten negativ ist, tritt ein Fehler auf
KEINE_NULL_IM_DATUM '0000-00-00' ist erlaubt und Einfügungen erzeugen eine Warnung
NUR_VOLLSTÄNDIGE_GRUPPE_NUR Das in select angegebene Feld muss in groupby erscheinen, sonst tritt ein Fehler auf
STRICT_TRANS_TABLES Aktivieren Sie den strikten SQL-Modus für transaktionale Speicher-Engines und, sofern möglich, für nicht transaktionale Speicher-Engines.
STRICT_ALL_TABLES Aktivieren Sie den strikten SQL-Modus für alle Speicher-Engines. Ungültige Datenwerte werden zurückgewiesen.

Weitere Einzelheiten finden Sie unter https://dev.mysql.com/doc/ref...

Strikter SQL-Modus

Der MySQL-Server kann in verschiedenen SQL-Modi arbeiten und diese Modi für verschiedene Clients unterschiedlich anwenden, abhängig vom Wert der Systemvariablen sql_mode. Im strikten SQL-Modus stuft der Server bestimmte Warnungen in Fehler um.

Der strikte SQL-Modus gilt für die folgenden Anweisungen

  • ALTER TABLE
  • TABELLE ERSTELLEN
  • TABELLE ERSTELLEN ... AUSWÄHLEN
  • LÖSCHEN
  • EINFÜGEN
  • DATEN LADEN
  • XML LADEN
  • Wählen Sie SLEEP()
  • AKTUALISIEREN

Wenn innerhalb einer gespeicherten Prozedur die Prozedur bei aktiviertem strikten Modus definiert wurde, werden einzelne Anweisungen der aufgelisteten Typen im strikten SQL-Modus ausgeführt.

Der strenge SQL-Modus gilt für die folgenden Fehler, die eine Fehlerklasse darstellen, bei der ein Eingabewert ungültig ist oder fehlt. Ein Wert ist ungültig, wenn er den falschen Datentyp für die Spalte hat oder außerhalb des gültigen Bereichs liegt. Wenn eine neu einzufügende Zeile keinen Wert für eine Spalte enthält, die in ihrer Definition keine explizite DEFAULT-Klausel mit dem Wert NOT NULL hat, dann fehlt der Wert.

  • ER_BAD_NULL_ERROR
  • ER_CUT_VALUE_GROUP_CONCAT
  • ER_DATA_TOO_LONG
  • ER_DATETIME_FUNCTION_OVERFLOW
  • ER_DIVISION_BY_ZERO
  • ER_INVALID_ARGUMENT_FOR_LOGARITHM
  • ER_NO_DEFAULT_FOR_FIELD
  • ER_NO_DEFAULT_FOR_VIEW_FIELD
  • ER_TOO_LONG_KEY
  • ER_TRUNCATED_WRONG_VALUE
  • ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
  • ER_WARN_DATA_OUT_OF_RANGE
  • ER_WARN_NULL_TO_NOTNULL
  • ER_WARN_ZU_WENIGE_DATEN
  • ER_WRONG_ARGUMENTS
  • ER_FALSCHES_VERMÖGEN_FÜR_TYP
  • WARN_DATA_TRUNCATED

Danksagung

Vielen Dank fürs Lesen. Ich hoffe, dieser Artikel kann Ihnen helfen. Vielen Dank.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So aktivieren Sie den strikten Modus in MySQL
  • Erlernen Sie SQL-Anweisungen (leistungsstarke Gruppierungs- und Auswahlmodi)
  • Gewöhnliche Gespräche über die Verwendung von MYSQL Pattern Matching REGEXP und ähnliches
  • Einführung in den Mysql SQL Server-Modus
  • PHP-MySQL-Klasse basierend auf Singleton-Modus
  • NoSQL-Antimuster – Dokumentdatenbanken
  • Detaillierte Analyse des binlog_format-Modus und der Konfiguration in MySQL
  • So gehen Sie mit einer Warnung um, wenn MySQL den Skip-Name-Resolve-Modus aktiviert

<<:  So verwenden Sie Docker-Compsoe zum Bereitstellen eines Projekts mit Front-End- und Back-End-Trennung

>>:  So komprimieren Sie Bilder effektiv mit JS

Artikel empfehlen

Lösen Sie das Problem des MySQL Threads_running-Surge und der langsamen Abfrage

Inhaltsverzeichnis Hintergrund Problembeschreibun...

Nginx-Server fügt benutzerdefinierte Systemd-Dienstprozessanalyse hinzu

1. Nehmen Sie nginx als Beispiel Nginx mit dem Be...

Aktivierungsmethode für Windows Service 2016 Datacenter\Stand\Embedded (2021)

Führen Sie cmd mit Administratorrechten aus slmgr...

Lösung für den Fehler bei der Verbindung mit MySQL in Docker

Szenario: Nach der Installation der neuesten Vers...

Welche Vorteile bietet die Verwendung des B+-Baumindex in MySQL?

Bevor wir dieses Problem verstehen, schauen wir u...

Tutorial zu HTML-Tabellen-Tags (13): Regeln für interne Rahmenstilattribute

Mit REGELN kann die Art der inneren Rahmen der Ta...

Vue implementiert die Internationalisierung der Sprachumschaltung für Webseiten

1. Grundlegende Schritte 1: Installieren Sie yarn...

Detaillierte Erläuterung der Js-Klassenkonstruktion und Vererbungsfälle

Die Definition und Vererbung von Klassen in JS si...

Implementierungsmethode für die Datenspeicherung im WeChat-Applet

Inhaltsverzeichnis Globale Variable „globalData“ ...

Zusammenfassung der 7 Fallstricke bei der Verwendung von React

Inhaltsverzeichnis 1. Komponentenaufblähung 2. Än...

Versuchen Sie Docker+Nginx, um die Single-Page-Anwendungsmethode bereitzustellen

Von der Entwicklung bis zur Bereitstellung: Mache...

Implementierungsbeispiel für den Bildupload mit Vue+Element+Springboot

Vor kurzem hatte ich zufällig Kontakt mit dem Pro...

Layout im Vue.js-Stil Allgemeine Fähigkeiten zur Flutter-Geschäftsentwicklung

Korrespondenz zwischen Flutter und CSS im Shadow-...