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

Bolehkah Berbilang Lajur TIMESTAMP Mempunyai CURRENT_TIMESTAMP dalam MySQL?

Linda Hamilton
Lepaskan: 2024-10-29 21:26:29
asal
1054 orang telah melayarinya

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

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

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