MySQL中时间字段的更新

在日常建表中,总是会涉及到两个常见的字段——创建时间、更新时间,通常情况下这两个字段由代码控制,但其实MySQL可以通过内置的时间函数来实现该功能

  • **DEFAULT CURRENT_TIMESTAMP**
    表示当插入数据的时候,该字段默认值为当前时间
  • **ON UPDATE CURRENT_TIMESTAMP**
    表示每次更新这条数据的时候,该字段都会更新成当前时间

这两个操作是 MySQL数据库本身在维护,所以可以根据这个特性来生成【创建时间】和【更新时间】两个字段,且不需要代码来维护

例子如下:

  1. REATE TABLE `mytest` (
  2. `text` varchar(255) COMMENT '内容',
  3. `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  4. `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;