Heim >Datenbank >MySQL-Tutorial >Warum akzeptiert MySQL CURRENT_DATE/CURDATE() nicht immer als Standardwert?

Warum akzeptiert MySQL CURRENT_DATE/CURDATE() nicht immer als Standardwert?

Barbara Streisand
Barbara StreisandOriginal
2024-12-07 11:49:12812Durchsuche

Why Doesn't MySQL Always Accept CURRENT_DATE/CURDATE() as a Default Value?

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!

Stellungnahme:
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