CURRENT_DATE/CURDATE() im DEFAULT-Wert für DATE-Spalten: Funktionalität und Einschränkungen
In MySQL kann es vorkommen, dass Sie auf eine Situation stoßen, in der Sie dies wünschen um einen Standardwert für eine DATE-Spalte mithilfe der Funktion CURRENT_DATE oder CURDATE() festzulegen. Allerdings scheitert dieser Ansatz oft und wirft die Frage auf, warum er nicht unterstützt wird.
Die Antwort liegt in der Beschränkung von MySQL auf Standardwerte. Laut MySQL-Dokumentation:
The DEFAULT clause specifies a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression.
Daher erlaubt MySQL nicht die Verwendung von CURRENT_DATE oder CURDATE() als Standardwert für eine DATE-Spalte, da diese Funktionen das aktuelle Datum dynamisch zurückgeben. Stattdessen müssen Standardwerte statische Konstanten sein.
In MySQL 8.0.13 und höher wurde diese Einschränkung jedoch entfernt. Sie können jetzt CURRENT_DATE oder CURDATE() als Standardwert für eine DATE-Spalte verwenden.
CREATE TABLE INVOICE( INVOICEDATE DATE NOT NULL DEFAULT CURRENT_DATE )
Diese Änderung ermöglicht die Zuweisung des aktuellen Datums als Standardwert für DATE-Spalten, was mehr Flexibilität bietet Datenverwaltung.
Das obige ist der detaillierte Inhalt vonWarum kann ich CURRENT_DATE/CURDATE() nicht als Standardwert für DATE-Spalten in MySQL verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!