CURRENT_DATE/CURDATE()-Standardwertprobleme in MySQL
Ein häufiges Dilemma, mit dem Entwickler konfrontiert sind, besteht darin, die Funktionen CURRENT_DATE oder CURDATE() als zu verwenden Standardwerte für DATE-Spalten in MySQL. Entgegen den Erwartungen funktionieren diese Funktionen nicht wie vorgesehen.
Der Grund liegt in den Einschränkungen von MySQL hinsichtlich der Standardwerte. Normalerweise müssen Standardwerte Konstanten sein, keine Funktionen oder Ausdrücke. Daher schlägt das Festlegen des Standardwerts einer DATE-Spalte auf NOW() oder CURRENT_DATE fehl.
CREATE TABLE INVOICE( INVOICEDATE DATE NOT NULL DEFAULT CURRENT_DATE )
[Bearbeiten: Unterstützung für CURRENT_DATE/CURDATE() als Standardwerte]
Es ist erwähnenswert, dass MySQL Version 8.0.13 die Unterstützung für CURRENT_DATE und CURDATE() als Standardwerte für eingeführt hat DATE-Spalten. Frühere Versionen unterstützen diese Funktionalität jedoch nicht.
Ausnahme für TIMESTAMP-Spalten
Eine bemerkenswerte Ausnahme von der Regel ist die Möglichkeit, CURRENT_TIMESTAMP als Standardwert für TIMESTAMP zu verwenden Spalten, die von MySQL unterstützt werden. Weitere Einzelheiten zu diesem Aspekt finden Sie in der MySQL-Dokumentation.
Das obige ist der detaillierte Inhalt vonWarum akzeptiert MySQL CURRENT_DATE/CURDATE() nicht immer als Standardwert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!