phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

Was ist der Standardwert für ein Feld, wenn kein Standardwert angegeben ist?

Verweis auf das Handbuch ,

Wenn bei der Dateneingabe für eine NOT NULL-Spalte ohne explizite DEFAULT-Klausel eine INSERT- oder REPLACE-Anweisung keinen Wert für die Spalte enthält oder eine UPDATE-Anweisung die Spalte auf NULL setzt, behandelt MySQL die Spalte gemäß dem zu diesem Zeitpunkt gültigen SQL-Modus:

  • Wenn der strikte SQL-Modus nicht aktiviert ist, setzt MySQL die Spalte auf den impliziten Standardwert für den Spaltendatentyp.
  • Wenn der strikte Modus aktiviert ist, tritt bei Transaktionstabellen ein Fehler auf und die Anweisung wird rückgängig gemacht. Bei nicht transaktionalen Tabellen tritt ein
    Fehler auf, aber wenn dies für die zweite oder nachfolgende Zeile einer mehrzeiligen Anweisung auftritt, wurden die vorhergehenden Zeilen eingefügt.

Ihre Frage könnte also lauten:Was sind die impliziten Standardwerte für die verschiedenen Spaltendatentypen? Bitte schön:

Implizite Standardwerte sind wie folgt definiert:

  • Für numerische Typen ist der Standardwert 0, mit der Ausnahme, dass für Ganzzahl- oder Fließkommatypen, die mit dem Attribut AUTO_INCREMENT
    deklariert sind, der Standardwert der nächste Wert in der Sequenz ist.
  • Für andere Datums- und Zeittypen als TIMESTAMP ist der Standardwert der entsprechende „Null“-Wert für den Typ. Für die erste TIMESTAMP-Spalte in einer Tabelle ist der Standardwert das aktuelle Datum und die aktuelle Uhrzeit. Siehe Abschnitt 10.3, „Datums- und Zeittypen“.
  • Für andere String-Typen als ENUM ist der Standardwert der leere String. Für ENUM ist der Standardwert der erste Aufzählungswert.