Heim > Datenbank > MySQL-Tutorial > Hauptteil

So verwenden Sie den strengen MySQL-Modus

WBOY
Freigeben: 2023-05-26 15:10:15
nach vorne
2436 Leute haben es durchsucht

    1. So aktivieren und deaktivieren Sie den strengen Modus

    Suchen Sie my.cnf im MySQL-Installationsverzeichnis (Windows-System). ist my.ini)-Datei

    Das Hinzufügen von STRICT_TRANS_TABLES zu sql_mode bedeutet, dass der strikte Modus aktiviert wird. Nach der Änderung wird MySQL neu gestartet #Zum Beispiel zeigt dies an, dass der strikte Modus aktiviert ist:

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    2. Funktionsbeschreibung des strikten Modus# 🎜🎜#
    # 🎜🎜#

    Unterstützt das Einfügen von Nullwerten in Nicht-Null-Felder nicht.

    • Unterstützt das Einfügen von „Nullwerten“ nicht " in automatisch wachsende Felder

    • # 🎜🎜#
    • Unterstützt keine Textfelder mit Standardwerten

    • 3. Beispiel:

      Erstellen Sie eine Datentabelle, um das Testen zu erleichtern Der Wert des Namens ist null.

    #🎜 🎜#Im nicht strengen Modus ausführen automatisch konvertiert in „

    Im strengen Modus ausführen#🎜 🎜#

    CREATE TABLE `mytable` (
     `id` int(11) NOT NULL AUTO_INCREMENT,
     `name` varchar(20) NOT NULL,
     `content` text NOT NULL,
     PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Nach dem Login kopieren

    Die Ausführung ist fehlgeschlagen, was dazu führt, dass der Feldname kein Nullwert sein darf#🎜🎜 #

    2. Werttest für selbsterhöhende Feldeinfügung

    Fügen Sie „Wert“ in das ID-Feld ein

    #🎜🎜 #Im nicht-strikten Modus ausgeführt

    mysql> insert into mytable(content) values('programmer');
    Query OK, 1 row affected, 1 warning (0.00 sec)
    
    mysql> select * from mytable;
    +----+------+------------+
    | id | name | content    |
    +----+------+------------+
    |  1 |      | programmer |
    +----+------+------------+
    1 row in set (0.00 sec)
    Nach dem Login kopieren

    Ausführung erfolgreich

    #🎜🎜 #Im strikten Modus ausführen

    mysql> insert into mytable(content) values('programmer');
    ERROR 1364 (HY000): Field 'name' doesn't have a default value
    Nach dem Login kopieren
    #🎜🎜 #Ausführung fehlgeschlagen, Meldung, dass die Feld-ID nicht „

    mysql> insert into mytable(id,name,content) value('','fdipzone','programmer');
    Query OK, 1 row affected, 1 warning (0.00 sec)
    
    mysql> select * from mytable;
    +----+----------+------------+
    | id | name     | content    |
    +----+----------+------------+
    |  1 | fdipzone | programmer |
    +----+----------+------------+
    1 row in set (0.00 sec)
    Nach dem Login kopieren

    Wenn die Feld-ID null ist, kann die Ausführung erfolgreich sein# 🎜🎜#

    3. Test des Standardwerts des Textfelds#🎜 🎜#

    Erstellen Sie eine Datentabelle mytable, in der Text den Standardwert default="#🎜 🎜#

    Ausgeführt im nicht strikten Modus#🎜 🎜#

    mysql> insert into mytable(id,name,content) value('','fdipzone','programmer');
    ERROR 1366 (HY000): Incorrect integer value: '' for column 'id' at row 1
    Nach dem Login kopieren
    Erfolgreich ausgeführt

    Im strengen Modus ausgeführt

    #🎜 🎜#
    mysql> insert into mytable(id,name,content) value(null,'fdipzone','programmer');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from mytable;
    +----+----------+------------+
    | id | name     | content    |
    +----+----------+------------+
    |  1 | fdipzone | programmer |
    +----+----------+------------+
    1 row in set (0.00 sec)
    Nach dem Login kopieren

    Die Ausführung ist fehlgeschlagen, was dazu führt, dass der Inhalt Das Feld ist vom Typ TEXT und der Standardwert kann nicht verwendet werden.

    Die Verwendung des strikten Modus von MySQL kann die Datensicherheit erhöhen, der Nachteil besteht jedoch darin, dass dadurch die Kompatibilität leerer Daten in der Datenbank verringert wird. Es wird empfohlen, dass die Entwicklungsumgebung den strikten Modus verwendet, um die Codequalität und Datengenauigkeit zu verbessern.

    Das obige ist der detaillierte Inhalt vonSo verwenden Sie den strengen MySQL-Modus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage