Mengurus Berbilang Lajur TIMESTAMP dengan CURRENT_TIMESTAMP
Dalam MySQL, mentakrifkan berbilang lajur TIMESTAMP dengan nilai lalai definisi CURRENT_TIMESTAMP boleh membawa kepada ralat "Jadual salah ; hanya boleh ada satu lajur TIMESTAMP dengan klausa CURRENT_TIMESTAMP dalam DEFAULT atau ON UPDATE." Untuk mengatasi had ini, pertimbangkan pendekatan berikut dalam edisi MySQL terkini (cth., 5.6.25):
Penyelesaian:
Ubah suai takrif jadual seperti berikut:
<code class="sql">CREATE TABLE `msgs` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `msg` VARCHAR(256), `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `ts_update` TIMESTAMP NOT NULL, CONSTRAINT UPDATE_ON_CHANGE_ts_update FOREIGN KEY (`ts_update`) REFERENCES `msgs` (`ts_create`) ON DELETE SET NULL ON UPDATE CURRENT_TIMESTAMP )</code>
Dalam skema yang diubah suai ini:
Pendekatan ini membolehkan anda mengekalkan tingkah laku yang diingini untuk menjejaki kedua-dua penciptaan rekod dan cap masa kemas kini sambil mengelakkan ralat MySQL.
Atas ialah kandungan terperinci Bagaimana untuk Menguruskan Berbilang Lajur TIMESTAMP dengan CURRENT_TIMESTAMP dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!