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!