MySQL自动填充当前时间

更新时间:02-08 教程 由 别想 分享

问题:如何在MySQL中实现自动更新时间?

本文主要涉及MySQL中自动填充当前时间的两种方式,以及它们的实现方法和使用场景。

方式一:使用DEFAULT和ON UPDATE CURRENT_TIMESTAMP

在MySQL中,可以使用DEFAULT和ON UPDATE CURRENT_TIMESTAMP来实现自动填充当前时间。具体实现方法如下:

1. 创建表时,在对应字段的定义中添加DEFAULT和ON UPDATE CURRENT_TIMESTAMP,如下所示:

ple (

id INT(11) NOT NULL AUTO_INCREMENT,ame VARCHAR(50) NOT NULL,

created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (id)

2. 在INSERT或UPDATE语句中不指定created_at和updated_at字段的值,MySQL会自动填充当前时间。

3. 如果只想使用其中一个字段,可以在定义中只添加DEFAULT或ON UPDATE CURRENT_TIMESTAMP。

使用场景:适用于需要记录数据创建和更新时间的场景,例如日志记录、数据审计等。

方式二:使用触发器

除了DEFAULT和ON UPDATE CURRENT_TIMESTAMP,还可以使用触发器来实现自动更新时间。具体实现方法如下:

1. 创建表时不添加自动更新时间的字段。

ple (

id INT(11) NOT NULL AUTO_INCREMENT,ame VARCHAR(50) NOT NULL,

created_at TIMESTAMP,

updated_at TIMESTAMP,

PRIMARY KEY (id)

2. 创建触发器,在INSERT或UPDATE语句执行前或后更新对应字段的值。

plesert_triggerple

FOR EACH ROW

SET NEW.created_at = NOW(), NEW.updated_at = NOW();

ple_update_triggerple

FOR EACH ROW

SET NEW.updated_at = NOW();

3. 在INSERT或UPDATE语句中不指定created_at和updated_at字段的值,触发器会自动填充当前时间。

使用场景:适用于需要在已有表中添加自动更新时间的场景,例如数据迁移、系统升级等。

本文介绍了MySQL中实现自动更新时间的两种方式,即使用DEFAULT和ON UPDATE CURRENT_TIMESTAMP和使用触发器。在实际应用中,可以根据具体场景选择合适的方式来实现自动更新时间。

声明:关于《MySQL自动填充当前时间》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2138169.html