Heim > Datenbank > MySQL-Tutorial > Warum kann ich CURRENT_DATE nicht als Standardwert für eine MySQL-DATE-Spalte festlegen?

Warum kann ich CURRENT_DATE nicht als Standardwert für eine MySQL-DATE-Spalte festlegen?

Patricia Arquette
Freigeben: 2024-12-16 13:16:11
Original
419 Leute haben es durchsucht

Why Can't I Set CURRENT_DATE as the Default Value for a MySQL DATE Column?

CURRENT_DATE-Standardwert-Rätsel

In MySQL kann der Versuch, den Standardwert für eine DATE-Spalte auf CURDATE() oder CURRENT_DATE festzulegen, wie folgt aussehen eine intuitive Wahl. Der Versuch, eine solche Tabelle zu erstellen, schlägt jedoch fehl. In dieser Frage wird erläutert, warum dieses Verhalten auftritt.

Der Schuldige liegt in den Einschränkungen der DEFAULT-Klausel von MySQL. Wie in der offiziellen Dokumentation erklärt:

„Die DEFAULT-Klausel gibt einen Standardwert für eine Spalte an. Mit einer Ausnahme muss der Standardwert eine Konstante sein; er darf keine Funktion oder ein Ausdruck sein.“

Daher wird die Zuweisung von CURRENT_DATE, einer Funktion, die das aktuelle Datum abruft, als Standard für eine DATE-Spalte nicht unterstützt.

Die Ausnahme

Die Ausnahme von dieser Regel ist der Spaltentyp CURRENT_TIMESTAMP. Für eine TIMESTAMP-Spalte können Sie CURRENT_TIMESTAMP als Standardwert angeben, um die Spalte automatisch mit dem aktuellen Datum und der aktuellen Uhrzeit zu füllen.

Problemumgehung

Wenn Sie das beibehalten möchten Wenn Sie das aktuelle Datum und die aktuelle Uhrzeit in einer DATE-Spalte angeben, können Sie einen Trigger verwenden, um das Feld bei Einfüge- und Aktualisierungsvorgängen automatisch zu aktualisieren.

Das obige ist der detaillierte Inhalt vonWarum kann ich CURRENT_DATE nicht als Standardwert für eine MySQL-DATE-Spalte festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage