c语言编程笔录

首页 >   > 笔记大全

笔记大全

MySQL8如何设置自动创建时间和自动更新时间

更新时间:2023-12-05

什么是自动创建时间和自动更新时间

自动创建时间和自动更新时间是两种MySQL中内置的特性,它们可以用于记录数据库表中每一条数据的创建时间和最后更新时间,方便我们在查询数据时进行追踪和管理。

如何设置自动创建时间

设置自动创建时间需要在创建数据表时增加一个名为“created_at”的列,并将它的数据类型设置为“datetime”,然后通过设置默认值为“current_timestamp”来自动记录创建时间。MySQL8的语法为:

CREATE TABLE `tablename` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `created_at` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

如何设置自动更新时间

设置自动更新时间需要在创建数据表时增加一个名为“updated_at”的列,并将它的数据类型设置为“datetime”,然后通过添加一个触发器在每次更新数据时自动更新更新时间。MySQL8的语法为:

CREATE TABLE `tablename` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `created_at` datetime NOT NULL DEFAULT current_timestamp(),
  `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TRIGGER `tablename_update` BEFORE UPDATE ON `tablename`
FOR EACH ROW SET NEW.updated_at = CURRENT_TIMESTAMP;

总结

本文介绍了MySQL8中如何设置自动创建时间和自动更新时间,它们是数据库表中很有用的特性,可以用于记录数据的创建和更新时间来帮助我们进行追踪和管理。通过在数据表中增加相应的列和触发器,我们可以很轻松地实现这些功能。