Rumah >pangkalan data >tutorial mysql >Mengapa `DEFAULT CURRENT_DATE` Tidak Berfungsi dalam MySQL (dan Bilakah Ianya?)

Mengapa `DEFAULT CURRENT_DATE` Tidak Berfungsi dalam MySQL (dan Bilakah Ianya?)

Barbara Streisand
Barbara Streisandasal
2024-12-10 06:19:14354semak imbas

Why Doesn't `DEFAULT CURRENT_DATE` Work in MySQL (and When Does It?)

CURRENT_DATE/CURDATE() sebagai Default DATE Value Fix

Walaupun penampilannya mudah, tetapkan CURRENT_DATE atau CURDATE() sebagai nilai lalai untuk lajur DATE menggunakan sintaks di bawah mungkin tidak fungsi:

CREATE TABLE INVOICE(
   INVOICEDATE DATE NOT NULL DEFAULT CURRENT_DATE
)

Sebab:

Walaupun kod ini mungkin kelihatan intuitif, ia gagal disebabkan oleh pengehadan MySQL. Menurut dokumentasi, klausa DEFAULT mewajibkan nilai malar untuk lajur. Fungsi atau ungkapan, seperti CURRENT_DATE, tidak dibenarkan.

Penyelesaian:

Sebelum ini, isu ini berterusan untuk versi MySQL sebelum 8.0.13. Walau bagaimanapun, dalam MySQL 8.0.13 dan lebih baru, anda kini boleh menggunakan CURRENT_DATE() atau CURDATE() sebagai nilai lalai untuk lajur DATE, menghapuskan keperluan untuk penyelesaian.

Atas ialah kandungan terperinci Mengapa `DEFAULT CURRENT_DATE` Tidak Berfungsi dalam MySQL (dan Bilakah Ianya?). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn