Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah Saya Boleh Mentakrifkan Berbilang Lajur TIMESTAMP dengan CURRENT_TIMESTAMP dalam MySQL?

Bagaimanakah Saya Boleh Mentakrifkan Berbilang Lajur TIMESTAMP dengan CURRENT_TIMESTAMP dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-31 03:03:02868semak imbas

How Can I Define Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP in MySQL?

Mengurus CURRENT_TIMESTAMP dalam MySQL untuk Operasi Penciptaan dan Kemas Kini

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.

Penyelesaian

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!

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