Rumah > pangkalan data > tutorial mysql > Mengapa Saya Tidak Boleh Menggunakan CURRENT_DATE/CURDATE() sebagai Nilai Lalai untuk Lajur DATE dalam MySQL?

Mengapa Saya Tidak Boleh Menggunakan CURRENT_DATE/CURDATE() sebagai Nilai Lalai untuk Lajur DATE dalam MySQL?

Linda Hamilton
Lepaskan: 2024-12-04 21:18:12
asal
194 orang telah melayarinya

Why Can't I Use CURRENT_DATE/CURDATE() as a Default Value for DATE Columns in MySQL?

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.
Salin selepas log masuk

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
)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan