Rumah  >  Artikel  >  pangkalan data  >  Bolehkah Berbilang Lajur TIMESTAMP Mempunyai CURRENT_TIMESTAMP dalam MySQL?

Bolehkah Berbilang Lajur TIMESTAMP Mempunyai CURRENT_TIMESTAMP dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-10-29 21:26:29976semak imbas

Can Multiple TIMESTAMP Columns Have CURRENT_TIMESTAMP in MySQL?

MySQL CURRENT_TIMESTAMP pada Cipta dan Kemas Kini

Apabila mentakrifkan jadual MySQL, adalah wajar untuk memasukkan cap masa untuk menjejak penciptaan dan pengubahsuaian rekod . Walau bagaimanapun, ralat mungkin berlaku apabila cuba mentakrifkan dua medan TIMESTAMP dengan CURRENT_TIMESTAMP sebagai nilai lalai atau pada nilai kemas kini.

Mesej Ralat

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

Sebab

Versi MySQL sebelum 5.6.25 hanya membenarkan satu lajur TIMESTAMP ditakrifkan dengan CURRENT_TIMESTAMP sebagai nilai lalai atau pada nilai kemas kini.

Penyelesaian

Dalam MySQL versi 5.6.25 dan ke atas, adalah mungkin untuk mentakrifkan berbilang lajur TIMESTAMP, setiap satu dengan tetapan CURRENT_TIMESTAMP sendiri. Setakat MySQL 8.0, sekatan ini telah dialih keluar sepenuhnya. Oleh itu, untuk versi 5.6.25 dan ke atas, takrif jadual berikut harus berfungsi dengan betul:

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
)

Takrifan ini akan mencipta jadual dengan dua medan TIMESTAMP, ts_create dan ts_update, yang akan dikemas kini secara automatik mengikut arus cap masa pada penciptaan rekod dan kemas kini, masing-masing.

Atas ialah kandungan terperinci Bolehkah Berbilang Lajur TIMESTAMP Mempunyai 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