MySQL:支持具有 CURRENT_TIMESTAMP 的多个 TIMESTAMP 字段
MySQL 文档规定,一张表只能有一个 TIMESTAMP 列,其中 CURRENT_TIMESTAMP 值为DEFAULT 或 ON UPDATE 子句。当您想要跟踪记录的创建和更新时间戳时,这可能会受到限制。
错误处理
当您尝试创建包含多个记录的表时使用 CURRENT_TIMESTAMP 的 TIMESTAMP 列,您将遇到如下错误:
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
解决方案
最近版本的 MySQL(5.6.25 及更高版本)已解决此问题局限性。您现在可以定义具有多个 TIMESTAMP 列的表,每个列都有自己的 CURRENT_TIMESTAMP 行为。下面是一个示例:
<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>
使用此更新的语法,当插入新记录或更新现有记录时,ts_create 和 ts_update 列都将自动设置为当前时间戳。
以上是如何在MySQL中使用CURRENT_TIMESTAMP实现多个TIMESTAMP字段?的详细内容。更多信息请关注PHP中文网其他相关文章!