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

So konfigurieren Sie Anti-Hotlinking für den Nginx-Websitedienst (empfohlen)

1. Prinzip des Hotlinking 1.1 Vorbereitung der We...

js realisiert das dynamische Laden von Daten durch Wasserfallfluss

In diesem Artikel erfahren Sie den spezifischen C...

Gestaltung der Bildvorschau auf der Inhaltswebseite

<br />Ich habe bereits zwei Artikel geschrie...

Was tun, wenn Sie Ihr MySQL-Passwort vergessen?

Lösung zum Vergessen des MySQL-Passworts: [root@l...

Vue-Komponente zur Realisierung einer Karussell-Animation

In diesem Artikelbeispiel wird der spezifische Co...

Schritte zur Installation von Pyenv unter Deepin

Vorwort In der Vergangenheit habe ich die Python-...

So implementieren Sie eine steuerbare gepunktete Linie mit CSS

Vorwort Die Verwendung von CSS zum Generieren gep...

So fügen Sie MySQL Indizes hinzu

Hier ist eine kurze Einführung in Indizes: Der Zw...

4 Möglichkeiten, doppeltes Einfügen von Daten in Mysql zu vermeiden

Die gebräuchlichste Methode besteht darin, einen ...