mysql创建时间字段添加默认值方式

 更新时间:2023年07月24日 09:35:05   作者:zhangshengqiang168  
这篇文章主要介绍了mysql创建时间字段添加默认值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mysql创建时间字段添加默认值

在创建时间字段的时候

例如:

  • create_time默认值可以设置为CURRENT_TIMESTAMP  插入数据时候会自动添加时间,默认值为当前时间
  • update_time默认值可以设置为CURRENT_TIMESTAMP  ON UPDATE CURRENT_TIMESTAMP  表示每次更新这条数据的时候,该字段都会更新成当前时间

设置默认值错误,可以用下面sql修改字段默认值

ALTER TABLE `sms_message_system`
MODIFY COLUMN  `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP  COMMENT '创建时间' ;

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

CREATE TABLE `sms_message_system` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
  `message_title` varchar(255) DEFAULT '' COMMENT '标题',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `release_staff` varchar(255) DEFAULT NULL COMMENT '发布人员',
  `details` varchar(255) DEFAULT NULL COMMENT '消息详情',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8

mysql对表的创建,creat_time字段设置默认值,update_time字段更新操作设置为当前时间

目前在设计表的时候,一般会对表添加两个公共字段,create_time,upate_time。

  • create_time在新增数据的时候需要有当前时间
  • upate_time在新增数据的时候使用当前时间,在这行数据被跟新的时候设置成更新的当前时间。

上面的处理逻辑,可以在程序中写代码处理,也可以在数据库层处理。

create_time,update_time数据库建表语句的设置

以下是数据库层处理的方案

CREATE TABLE `xxx` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `table_id` int(11) DEFAULT NULL COMMENT '表id',
  `column_name` varchar(64) DEFAULT NULL COMMENT '列名字',
  `data_type` varchar(32) DEFAULT NULL COMMENT '列类型',
  `data_length` int(11) DEFAULT NULL COMMENT '列长度',
  `column_comment` varchar(255) DEFAULT NULL COMMENT '列备注',
  `column_order` int(11) DEFAULT NULL COMMENT '列排序',
  `custom_comment` varchar(255) DEFAULT NULL COMMENT '自定义备注',
  `del_flag` int(11) DEFAULT NULL COMMENT '是否删除:0未删除,1删除',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

对create_time字段和update_time字段的语法逻辑解说

主要看create_time字段和update_time字段。 

  • DEFAULT CURRENT_TIMESTAMP 表示insert的时候设置默认值  
  • ON UPDATE CURRENT_TIMESTAMP 表示一条数据更新的时候,本条数据的该字段设置为当前时间

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 如何解决mysql表输入中文出现问号的问题

    如何解决mysql表输入中文出现问号的问题

    这篇文章主要介绍了如何解决mysql表输入中文出现问号的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • mysql 索引分类以及用途分析

    mysql 索引分类以及用途分析

    MySQL索引分为普通索引、唯一性索引、全文索引、单列索引、多列索引等等。这里将为大家介绍着几种索引各自的用途。
    2011-08-08
  • mysql事务隔离级别详情

    mysql事务隔离级别详情

    这篇文章主要介绍了mysql事务隔离级别,文章围绕mysql事务隔离的相关资料详细展开文章重点,需要的小伙伴可以参考一下,希望对你有所帮助
    2021-10-10
  • 高并发状态下Replace Into造成的死锁问题解决

    高并发状态下Replace Into造成的死锁问题解决

    本文主要介绍了高并发状态下Replace Into造成的死锁问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • MySQL的root密码忘记怎么办 修改root密码的方式

    MySQL的root密码忘记怎么办 修改root密码的方式

    MySQL数据库的root密码忘记,怎么办?修改root密码的三种方式你知道吗?下面就为大家提供详细的解决方案,需要的朋友可以参考下
    2016-04-04
  • MySQL常用登录命令小结

    MySQL常用登录命令小结

    本文主要介绍了MySQL常用登录命令小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • mysql时区查看与设置方法

    mysql时区查看与设置方法

    这篇文章主要介绍了mysql时区查看与设置方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • mysql中插入表数据中文乱码问题的解决方法

    mysql中插入表数据中文乱码问题的解决方法

    mysql是我们项目中非经常常使用的数据型数据库,下面这篇文章主要给大家介绍了关于mysql中插入表数据中文乱码问题的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-09-09
  • MySQL创建和删除数据表的命令及语法详解

    MySQL创建和删除数据表的命令及语法详解

    这篇文章主要介绍了MySQL创建和删除数据表的命令及语法,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • 通过唯一索引S锁与X锁来了解MySQL死锁套路

    通过唯一索引S锁与X锁来了解MySQL死锁套路

    毫不夸张的说,有一半以上的死锁问题由唯一索引贡献,后面介绍的很多死锁的问题都跟唯一索引有关。这次我们讲一段唯一索引 S 锁与 X 锁的案例,下面小编来和大家一起学习一下
    2019-05-05

最新评论