Hanya Satu Lajur TIMESTAMP Dibenarkan dengan CURRENT_TIMESTAMP secara lalai atau Klausa ON UPDATE
Penghadan kod sejarah MySQL mengehadkan jadual untuk mempunyai hanya satu lajur TIMESTAMP CURRENT_TIMESTAMP sama ada dalam DEFAULT atau klausa ON UPDATE. Walau bagaimanapun, had ini telah ditarik balik dalam versi terbaru MySQL.
Ralat Warisan:
Pertimbangkan takrif jadual berikut:
CREATE TABLE `foo` ( `ProductID` INT(10) UNSIGNED NOT NULL, `AddedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `UpdatedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
Percubaan untuk mencipta jadual ini akan menghasilkan perkara berikut ralat:
Error Code : 1293 Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Resolusi dalam MySQL 5.6.5 dan Kemudian:
Bermula dengan MySQL 5.6.5, sekatan ini telah dialih keluar. Mana-mana lajur TIMESTAMP atau DATETIME kini boleh mempunyai sebarang kombinasi DEFAULT CURRENT_TIMESTAMP dan ON UPDATE CURRENT_TIMESTAMP klausa.
Seperti nota keluaran MySQL 5.6.5:
Previously, at most one TIMESTAMP column per table could be automatically initialized or updated to the current date and time. This restriction has been lifted. Any TIMESTAMP column definition can have any combination of DEFAULT CURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP clauses.
Oleh itu, definisi jadual disediakan dalam ralat warisan kini boleh dibuat berjaya:
CREATE TABLE `foo` ( `ProductID` INT(10) UNSIGNED NOT NULL, `AddedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `UpdatedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
Atas ialah kandungan terperinci Bolehkah Jadual MySQL Mempunyai Berbilang Lajur TIMESTAMP dengan CURRENT_TIMESTAMP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!