Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Melaksanakan Medan TIMESTAMP Berbilang dengan CURRENT_TIMESTAMP dalam MySQL?

Bagaimana untuk Melaksanakan Medan TIMESTAMP Berbilang dengan CURRENT_TIMESTAMP dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-05 16:45:02865semak imbas

How to Implement Multiple TIMESTAMP Fields with CURRENT_TIMESTAMP in MySQL?

MySQL: Menyokong Berbilang Medan TIMESTAMP dengan CURRENT_TIMESTAMP

Dokumentasi MySQL menyatakan bahawa jadual hanya boleh mempunyai satu lajur TIMESTAMP dengan nilai CURRENT_TIMESTAMP dalam sama ada klausa DEFAULT atau ON UPDATE. Ini boleh mengehadkan apabila anda mahu menjejak kedua-dua penciptaan dan mengemas kini cap masa rekod.

Pengendalian Ralat

Apabila anda cuba mencipta jadual dengan lebih daripada satu Lajur TIMESTAMP menggunakan CURRENT_TIMESTAMP, anda akan menghadapi ralat seperti berikut:

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

Penyelesaian

Versi terbaru MySQL (5.6.25 dan lebih baru) telah menangani perkara ini had. Anda kini boleh mentakrifkan jadual dengan berbilang lajur TIMESTAMP, setiap satu dengan gelagat CURRENT_TIMESTAMP sendiri. Berikut ialah contoh:

<code class="sql">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
);</code>

Dengan sintaks yang dikemas kini ini, kedua-dua lajur ts_create dan ts_update akan ditetapkan secara automatik kepada cap masa semasa apabila rekod baharu dimasukkan atau rekod sedia ada dikemas kini.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Medan TIMESTAMP Berbilang 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