首页 > 数据库 > mysql教程 > 在 MySQL 5.6.5 版本之前,使用 CURRENT_TIMESTAMP 与 TIMESTAMP 列有哪些限制?

在 MySQL 5.6.5 版本之前,使用 CURRENT_TIMESTAMP 与 TIMESTAMP 列有哪些限制?

Barbara Streisand
发布: 2024-12-15 16:20:13
原创
853 人浏览过

What Were the Restrictions on Using CURRENT_TIMESTAMP with TIMESTAMP Columns in MySQL Before Version 5.6.5?

5.6.5 之前的 MySQL 版本中 DEFAULT 中包含 CURRENT_TIMESTAMP 或 ON UPDATE 子句的 TIMESTAMP 列的限制

历史上,在 5.6.5 之前的 MySQL 版本中,有是一项限制,限制表只能有一个 TIMESTAMP 列,其中任一DEFAULT CURRENT_TIMESTAMP 或 ON UPDATE CURRENT_TIMESTAMP 子句。此限制在 2008 年首次引入 INT、BIGINT 和 SMALLINT 整数时就扩展到了它们。

此限制源于遗留实现问题,需要对 CURRENT_TIMESTAMP 功能进行特定实现。

错误消息和相关问题

例如,考虑下面的表定义,它尝试定义两个具有 CURRENT_TIMESTAMP 值的 TIMESTAMP 列:

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
) ENGINE=INNODB;
登录后复制

此定义将导致以下错误:

错误代码:1293<br>表定义不正确; <br>只能有一个 TIMESTAMP 列,<br>DEFAULT 或 ON<br>UPDATE 子句UPDATE 子句<p></p>此错误表明表定义违反了上述限制。<h3></h3>解除限制<p></p>尽管有技术基础对于这个限制,MySQL 团队认识到它的不便。随后,在 MySQL 5.6.5(2012 年 4 月 10 日发布)中,取消了该限制。<p></p>本次更新的变更日志指出:<pre class="brush:php;toolbar:false">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. In addition, these clauses now can be used with DATETIME column definitions.
登录后复制

以上是在 MySQL 5.6.5 版本之前,使用 CURRENT_TIMESTAMP 与 TIMESTAMP 列有哪些限制?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板