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!