MySQL实现datetime时间字段类型插入、更新操作自动填充 原创 阁主 2023-08-24 16:33:18 阅读 2040 次 评论 0 条 摘要:阿里巴巴的数据库手册有提到,在数据库的所有表里,必须有create_time和update_time,同时还要实现自动化。对于不管是用户的操作还是管理员的操作,对于update_time字段一定要及时更新记录自动填充更新为当前时间。 ## 说明 工具:我使用的数据库管理工具是Navicat Premium 16,这是一款非常不错的可视化数据库管理工具,道友门可自行右上角搜索关键字下载。 特殊情况:注意本文方法仅限用于MySQL版本≥5的情况。 ## 实现方法 按下面的四个小步骤先建立张数据表test1,字段有id、content、create_time、update_time。 (1)id字段设置如下: ![](https://www.mainblog.cn/zb_users/upload/2023/08/202308241644361726751.png) (2)content字段设置如下: ![](https://www.mainblog.cn/zb_users/upload/2023/08/202308241645162405881.png) (3)create_time字段需要设置一个默认值`CURRENT_TIMESTAMP`,设置如下: ![](https://www.mainblog.cn/zb_users/upload/2023/08/202308241646495984847.png) (4)update_time字段也需要设置一个默认值`CURRENT_TIMESTAMP`,与create_time字段不同的是需要勾选`根据当前时间戳更新`,设置如下: ![](https://www.mainblog.cn/zb_users/upload/2023/08/202308241648078930120.png) ## 测试结果 1.先测试写入一条记录的情况,结果为运行写入sql语句后创建时间和更新时间都是同步更新最新的系统时间。 ```sql INSERT INTO `guer`.`test1` (`content`) VALUES ('写入测试,后面的创建时间和更新时间会同时自动更新为当前时间戳') ``` ![](https://www.mainblog.cn/zb_users/upload/2023/08/202308241657137212151.png) 2.更新一条记录,结果为写入时间不变,更新记录的时间更新为最新的系统时间。 ```sql UPDATE `guer`.`test1` SET `content` = '现在是更新后的内容,创建时间不变,更新时间会自动更新。' WHERE `id` = 1 ``` ![](https://www.mainblog.cn/zb_users/upload/2023/08/202308241700035099467.png) ## 总结 总结就是两句话: 1.DEFAULT CURRENT_TIMESTAMP表示当插入数据的时候,该字段默认值为当前时间 2.ON UPDATE CURRENT_TIMESTAMP表示每次更新这条数据的时候,该字段都会更新成当前时间 ![](https://www.mainblog.cn/zb_users/upload/2023/08/202308241704176725071.png) 本文地址:https://www.mainblog.cn/337.html 版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处! 免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。 PREVIOUS:PHP实现简单的无限极分类 NEXT:记录PHP常用的composer包 文章导航