Heim  >  Artikel  >  Datenbank  >  So verwenden Sie den strengen MySQL-Modus

So verwenden Sie den strengen MySQL-Modus

WBOY
WBOYnach vorne
2023-05-26 15:10:152378Durchsuche

    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;

    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)

    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
    #🎜🎜 #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)

    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
    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)

    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!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen