首页  >  文章  >  数据库  >  如何在 MySQL 中使用 CURRENT_TIMESTAMP 定义多个 TIMESTAMP 列?

如何在 MySQL 中使用 CURRENT_TIMESTAMP 定义多个 TIMESTAMP 列?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-31 03:03:02862浏览

How Can I Define Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP in MySQL?

在 MySQL 中管理 CURRENT_TIMESTAMP 以进行创建和更新操作

在 MySQL 等关系数据库管理系统中,维护临时信息(例如何时创建或更新记录)至关重要用于数据完整性和跟踪更改。 MySQL 提供了 CURRENT_TIMESTAMP 子句来自动使用当前系统时间填充 TIMESTAMP 列。

但是,当尝试定义具有多个 TIMESTAMP 列的表时,每个列都将 CURRENT_TIMESTAMP 作为默认值或更新值,您可能会遇到以下错误:

ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

此错误会阻止您创建具有单独创建和更新时间戳所需行为的表

解决方案

MySQL 的最新版本(例如 MySQL 5.6.25)已解决了此限制。在这些版本中,可以定义多个 TIMESTAMP 列,并将 CURRENT_TIMESTAMP 作为默认值或更新值。

例如,要创建一个包含两个 TIMESTAMP 列 ts_create 和 ts_update 的表,并具有所需的行为:

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
);

此语句将成功创建具有两个 TIMESTAMP 列的表,并且它们的值将自动更新为分别是记录创建和更新时的当前系统时间。

以上是如何在 MySQL 中使用 CURRENT_TIMESTAMP 定义多个 TIMESTAMP 列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn