Dalam sistem pengurusan pangkalan data hubungan seperti MySQL, mengekalkan maklumat temporal, seperti apabila rekod dicipta atau dikemas kini, adalah penting. untuk integriti data dan menjejaki perubahan. MySQL menyediakan klausa CURRENT_TIMESTAMP untuk mengisi lajur TIMESTAMP secara automatik dengan masa sistem semasa.
Walau bagaimanapun, apabila cuba mentakrifkan jadual dengan berbilang lajur TIMESTAMP, setiap satu dengan CURRENT_TIMESTAMP sebagai lalai atau pada nilai kemas kini, anda mungkin menghadapi ralat berikut:
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Ralat ini menghalang anda daripada mencipta jadual dengan gelagat yang diingini bagi lajur ciptaan berasingan dan kemas kini cap waktu.
Versi terbaru MySQL, seperti MySQL 5.6.25, telah menyelesaikan had ini. Dalam versi ini, adalah mungkin untuk menentukan berbilang lajur TIMESTAMP dengan CURRENT_TIMESTAMP sebagai nilai lalai atau pada nilai kemas kini.
Sebagai contoh, untuk membuat jadual dengan dua lajur TIMESTAMP, ts_create dan ts_update, dengan gelagat yang diingini:
CREATE TABLE `msgs` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `msg` VARCHAR(256), `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `ts_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
Pernyataan ini akan berjaya mencipta jadual dengan kedua-dua lajur TIMESTAMP dan nilainya akan dikemas kini secara automatik dengan masa sistem semasa semasa membuat rekod dan kemas kini, masing-masing.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mentakrifkan Berbilang Lajur TIMESTAMP dengan CURRENT_TIMESTAMP dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!