Rumah  >  Artikel  >  pangkalan data  >  Bolehkah jadual MySQL mempunyai lebih daripada satu lajur CURRENT_TIMESTAMP?

Bolehkah jadual MySQL mempunyai lebih daripada satu lajur CURRENT_TIMESTAMP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 11:31:03847semak imbas

Can MySQL tables have more than one CURRENT_TIMESTAMP column?

Mengatasi Had Berbilang Lajur CURRENT_TIMESTAMP dalam MySQL

Adalah wajar untuk menjejak kedua-dua penciptaan dan mengemas kini cap masa data dalam jadual pangkalan data . Dalam MySQL, kata kunci CURRENT_TIMESTAMP boleh digunakan untuk mengisi lajur cap masa secara automatik dengan tarikh dan masa semasa. Walau bagaimanapun, MySQL mempunyai sekatan bahawa hanya satu lajur CURRENT_TIMESTAMP boleh ditentukan dalam pernyataan CREATE jadual.

Mengatasi Ralat

Ralat yang dijana semasa cuba mencipta jadual dengan berbilang lajur CURRENT_TIMESTAMP ialah:

ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

Ralat ini menunjukkan bahawa MySQL tidak dapat memproses definisi jadual kerana ia melanggar sekatan pada berbilang lajur CURRENT_TIMESTAMP.

Penyelesaian

Untuk mengatasi had ini, versi MySQL yang lebih baharu (5.6.25 atau lebih baru) boleh digunakan. Dalam MySQL 5.6.25 dan ke atas, sekatan pada berbilang lajur CURRENT_TIMESTAMP telah dialih keluar. Ini membolehkan anda menentukan jadual dengan berbilang lajur TIMESTAMP yang dikemas kini secara automatik dengan tarikh dan masa semasa.

Sebagai contoh, takrif jadual berikut sah dalam MySQL 5.6.25 dan lebih baru:

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
);

Dalam takrif jadual ini, kedua-dua lajur ts_create dan ts_update ialah lajur TIMESTAMP dengan CURRENT_TIMESTAMP ditetapkan sebagai nilai lalai untuk operasi sisipan dan kemas kini, masing-masing. Ini memastikan bahawa cap masa dikemas kini secara automatik dengan tarikh dan masa semasa apabila rekod dibuat atau dikemas kini.

Atas ialah kandungan terperinci Bolehkah jadual MySQL mempunyai lebih daripada satu lajur CURRENT_TIMESTAMP?. 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