📜  在 mysql 中添加 created 和 updatedAt 字段(1)

📅  最后修改于: 2023-12-03 14:51:02.866000             🧑  作者: Mango

在 MySQL 中添加 created 和 updatedAt 字段

MySQL 是一种常用的开源关系型数据库管理系统,用于存储和管理大量的数据。在编写应用程序时,经常需要在数据库表中添加用于跟踪数据创建和更新时间的字段,如 created 和 updatedAt 字段。

为什么需要 created 和 updatedAt 字段?

添加 created 和 updatedAt 字段有以下几个好处:

  1. 数据时效性:created 字段记录了数据的创建时间,updatedAt 字段记录了数据的最后更新时间。这样可以跟踪数据的时效性,了解数据的创建和修改时间,从而更好地了解数据的历史和变化。
  2. 数据一致性:通过比较 updatedAt 字段的时间戳,可以判断数据是否被修改过。这对于维护数据的一致性和完整性非常重要。同时,可以通过查询 updatedAt 字段,找出最近更新的数据。
  3. 性能优化:通过索引 created 和 updatedAt 字段,可以提高查询性能。例如,可以快速筛选出一段时间内创建或更新的数据。
如何在 MySQL 中添加 created 和 updatedAt 字段?

在 MySQL 中,添加 created 和 updatedAt 字段可以通过以下几个步骤:

1. 创建表

首先,创建一个新表或在已有的表中添加 created 和 updatedAt 字段。

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50),
  created DATETIME,
  updatedAt DATETIME
);

以上代码创建了一个名为 users 的表,包含了 id、name、created 和 updatedAt 字段。

2. 设置默认值

在创建表时,可以为 created 和 updatedAt 字段设置默认值,以便在插入数据时自动填充。

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50),
  created DATETIME DEFAULT CURRENT_TIMESTAMP,
  updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

上述代码中,created 字段使用了 CURRENT_TIMESTAMP 作为默认值,表示使用当前的时间戳。而 updatedAt 字段使用了 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,表示在更新数据时自动更新为当前的时间戳。

3. 插入数据

现在,可以向表中插入数据并验证 created 和 updatedAt 字段的值。

INSERT INTO users (name) VALUES ('John Doe');

此时,created 和 updatedAt 字段将自动填充为插入数据的时间戳。

4. 更新数据

当更新表中的数据时,updatedAt 字段将自动更新为当前的时间戳。

UPDATE users SET name = 'Jane Doe' WHERE id = 1;

以上语句将更新 id 为 1 的用户的 name 字段,并更新 updatedAt 字段为当前的时间戳。

总结

通过在 MySQL 中添加 created 和 updatedAt 字段,我们可以跟踪数据的时效性和变化,并且能够更好地维护数据的一致性和完整性。创建表时,可以指定默认值,也可以通过更新操作自动填充和更新这两个字段。以上就是在 MySQL 中添加 created 和 updatedAt 字段的基本介绍和使用方法。

注意:以上代码片段的语法可能与不同版本的 MySQL 和数据库管理工具有所差异,请根据实际情况进行适配和调整。