CURRENT_DATE/CURDATE() dalam Nilai DEFAULT untuk Lajur DATE: Kefungsian dan Had
Dalam MySQL, anda mungkin menghadapi situasi yang anda inginkan untuk menetapkan nilai lalai untuk lajur DATE menggunakan fungsi CURRENT_DATE atau CURDATE(). Walau bagaimanapun, pendekatan ini sering gagal, menimbulkan persoalan mengapa ia tidak disokong.
Jawapannya terletak pada sekatan MySQL pada nilai lalai. Menurut dokumentasi MySQL:
The DEFAULT clause specifies a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression.
Oleh itu, MySQL tidak membenarkan penggunaan CURRENT_DATE atau CURDATE() sebagai nilai lalai untuk lajur DATE kerana fungsi ini mengembalikan tarikh semasa secara dinamik. Sebaliknya, nilai lalai mestilah pemalar statik.
Walau bagaimanapun, dalam MySQL 8.0.13 dan ke atas, had ini telah dialih keluar. Anda kini boleh menggunakan CURRENT_DATE atau CURDATE() sebagai nilai lalai untuk lajur DATE.
CREATE TABLE INVOICE( INVOICEDATE DATE NOT NULL DEFAULT CURRENT_DATE )
Perubahan ini membenarkan kemungkinan untuk menetapkan tarikh semasa sebagai nilai lalai untuk lajur DATE, memberikan lebih fleksibiliti dalam pengurusan data.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan CURRENT_DATE/CURDATE() sebagai Nilai Lalai untuk Lajur DATE dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!