Wie kann ich sql_mode in
MySQL abfragen und festlegen? Der folgende Artikel stellt Ihnen die Abfrage- und Einstellungsmethoden von sql_mode in MySQL vor.
MySQLs sql_mode-Abfrage und -Einstellung
1, SQL zum Anzeigen ausführen [Verwandte Empfehlungen: MySQL-Video-Tutorial]
select @@session.sql_mode;
Globale Ebene: Anzeigen.
select @@global.sql_mode;
2, ändern
set @@session.sql_mode='xx_mode'set session sql_mode='xx_mode'
Globale Ebene: Ändern
set global sql_mode='xx_mode';set @@global.sql_mode='xx_mode';
Sitzung kann weggelassen werden, die Standardsitzung ist nur für die aktuelle Sitzung gültig
Globale Änderung erfordert erweiterte Berechtigungen, sie wird nur für die nächste Verbindung wirksam, hat keinen Einfluss auf die aktuelle Sitzung und wird nach dem Neustart von MySQL ungültig. Da MySQL beim Neustart den entsprechenden Wert in der Konfigurationsdatei erneut liest, müssen Sie den Wert in der Konfigurationsdatei ändern, wenn er dauerhaft sein soll.
vi /etc/my.cnf
[mysqld]sql-mode = "xx_mode"
Speichern und beenden, Server neu starten, es wird dauerhaft wirksam in GROUP BY erscheinen, dann ist diese SQL ungültig, da die Spalte nicht in der GROUP BY-Klausel enthalten ist. In den Standardeinstellungen bedeutet das Einfügen von 0 oder NULL, dass der nächste automatisch steigende Wert generiert wird. Diese Option ist nützlich, wenn der Benutzer einen Wert von 0 einfügen möchte und die Spalte automatisch vergrößert wird.
Wenn in diesem Modus ein Wert nicht in eine Transaktionstabelle eingefügt werden kann, wird der aktuelle Vorgang unterbrochen und es gibt keine Begrenzung für Nicht-Transaktionstabellen
NO_ZERO_IN_DATEIm strikten Modus , nicht zulässig. Das Datum oder der Monat ist Null. Solange der Monat oder Tag des Datums einen Wert von 0 enthält, wird ein Fehler gemeldet, mit Ausnahme von „0000-00-00“. Bei diesem Wert lässt die MySQL-Datenbank das Einfügen von Nulldaten nicht zu. Das Einfügen eines Nulldatums löst einen Fehler anstelle einer Warnung aus. Alle Angaben zu Jahr, Monat und Tag, die nicht 0 sind, erfüllen die Anforderungen. Nur „
0000-00-00“ meldet einen Fehler
ERROR_FOR_pISION_BY_ZERO
Während des INSERT- oder UPDATE-Vorgangs, wenn die Daten geteilt werden durch Null wird stattdessen eine Fehlermeldung ausgegeben. Wenn der Modus nicht angegeben ist, gibt MySQL NULL zurück, wenn die Daten durch Null geteilt werden. Nach dem Festlegen des Modus wird ein Fehler gemeldet. Der Wert von Num ist erfolgreich ist null. Wenn dieser Wert nicht festgelegt ist, wird stattdessen die Standardspeicher-Engine verwendet und eine Ausnahme ausgelöst.
PIPES_AS_CONCAT
behandelt „||“ als String-Verbindungsoperator und nicht als OR-Operator, was mit der Oracle-Datenbank identisch ist Es ähnelt auch der String-Splicing-Funktion Concat
ANSI_QUOTESNach der Aktivierung von ANSI_QUOTES können Sie keine doppelten Anführungszeichen verwenden, um die Zeichenfolge in Anführungszeichen zu setzen, da diese als Bezeichner interpretiert wird
Weitere Kenntnisse in Bezug auf die Programmierung finden Sie unter: Programmiervideos! !
Das obige ist der detaillierte Inhalt vonSo fragen Sie sql_mode in MySQL ab und legen es fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!