使用 CURRENT_TIMESTAMP 管理多个 TIMESTAMP 列
在 MySQL 中,使用 CURRENT_TIMESTAMP 默认值定义多个 TIMESTAMP 列可能会导致错误“表定义不正确” ; DEFAULT 或 ON UPDATE 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列。”为了克服这个限制,请在最近的 MySQL 版本(例如 5.6.25)中考虑以下方法:
解决方案:
修改表定义如下:
<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>
在此修改后的架构中:
这种方法允许您保持跟踪记录创建和更新时间戳的所需行为,同时避免 MySQL 错误。
以上是如何在 MySQL 中使用 CURRENT_TIMESTAMP 管理多个 TIMESTAMP 列?的详细内容。更多信息请关注PHP中文网其他相关文章!