本文作者:苏生米沿

本文地址:http://blog.csdn.net/sushengmiyan/article/details/50326259

在使用SQL的时候,希望在更新数据的时候自己主动填充更新时间,那么在mysql中是怎样实现的呢?

如创建表users

CREATE TABLE RS_SIGNUPUSER (
ID VARCHAR(36) COMMENT '主键(业务功能无关)',
USERNAME VARCHAR(50) COMMENT '姓名',
USERGENDER VARCHAR(3) DEFAULT '0' COMMENT '性别0男1女',
IDCARDNUMBER VARCHAR(18) COMMENT '身份证号码',
USERNATION VARCHAR(6) COMMENT '民族',
BIRTHDAY DATE COMMENT '生日',
USERAGE INTEGER COMMENT '年龄',
MOBILEPHONE VARCHAR(11) COMMENT '手机号码',
BZ VARCHAR(6) COMMENT '备注',
CREATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '注冊时间',
CREATEUSERID VARCHAR(36) COMMENT '创建人',
PX INTEGER COMMENT '排序',
UPDATEUSERID VARCHAR(20) COLLATE utf8_bin COMMENT '更新人',
UPDATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL COMMENT '更新时间',
CONSTRAINT
PRIMARY KEY (ID),
UNIQUE KEY(ZONECODE,USERZYBM) ) COMMENT ='注冊用户表';

当中,UPDATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL COMMENT '更新时间',会在更新的时候自己主动填充。啦啦啦。高兴吧。

不要高兴如此早,假设你使用的是mysql5.4版本号,那么你表创建的时候都会报错。别说更新时间了,看:

ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

出错鸟,创建表就失败了。

看5.5版本号的时间戳文档:http://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html

  • One TIMESTAMP column in a table can have the current timestamp as the default value for initializing the column, as the auto-update value, or both. It is not possible to have the current timestamp be the default value for one column and the auto-update value for another column.

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

能够看到这个版本号对时间戳有限制。

再看5.7版本号的

http://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html

已经没有这个限制了。我认为,低版本号的就仅仅能另想办法,手动或者使用触发器来做更新时间这件事情啦。要么就直接升级版本号解决这个问题。

MYSQL 更新时间自己主动同步与创建时间默认值共存问题的更多相关文章

  1. sql查询,如果有更新时间则按更新时间倒序,没有则按创建时间倒序排列

    原文:sql查询,如果有更新时间则按更新时间倒序,没有则按创建时间倒序排列 ORDER BY IFNULL(update_time,create_time) DESC IFNULL(expr1,exp ...

  2. linux 用户管理命令useradd、passwd、who、whoami、id、w及创建用户默认值文件

    useradd /usr/sbin/useradd执行权限:rootuseradd [选项] 用户名-u UID:手工指定用户的UID号-d 家目录:手工指定用户的家目录-c 用户说明:手工指定用户的 ...

  3. mysql datetime设置now()无效,直接用程序设置默认值比较好

    mysql datetime设置now()无效的,没有此用法,datetime类型不能设置函数式默认值,只能通过触发器等来搞.想设置默认值,只能使用timestamp类型,然后默认值设置为:CURRE ...

  4. MYSQL 更新时间自动同步与创建时间默认值共存问题

    本文作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/50326259 在使用SQL的时候,希望在更新数据的时候自动填充更新 ...

  5. MySQL语句增加字段,修改字段名,修改类型,修改默认值

    原文地址:https://blog.csdn.net/kimgoo/article/details/54630257 增加字段:alter table 表名 ADD 字段 类型 约束 [默认值 注释] ...

  6. 如何修改文件的 “创建时间” 和 “修改时间”(Windows Linux macOS)

    请访问原文链接:https://sysin.org/blog/how-to-change-file-date,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页:www ...

  7. 天下文章一大抄 之 修改excel 创建时间

    Sub ChangeDate()ThisWorkbook.BuiltinDocumentProperties("Creation Date") = #2 28 2016 13:25 ...

  8. 【MM系列】SAP MM模块-配置PO的创建时间

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-配置PO的创建时间 ...

  9. MySQL 5.6比较重要的参数,以及5.5到5.6默认值有过变化的参数

    新参数说明和设置,这里说下5.6比较重要的参数,以及5.5到5.6默认值有过变化的参数. MySQL Server参数: 1,optimizer_switch:优化器选项. Variable_name ...

随机推荐

  1. C语言-实现字符串倒序输出

    方法1: Action(){//倒序输出 char *src="abcdefgh123"; char *desc; desc=(char *)malloc(100*sizeof(c ...

  2. SpringBoot学习笔记(7)-----CORS支持解决跨域问题

    在实际应用开发中,跨域是一个比较常见的问题,解决方法可以用jsonp,frame,cors等, 这里示例的是SpringBoot对CORS的支持的三种实现方式 第一种:配置一种全局的支持,这种方式需要 ...

  3. js判断浏览器的环境(pc端,移动端,还是微信浏览器)

    window.navigator.userAgent用来区分设备和浏览器 <!DOCTYPE html> <html> <head> <meta charse ...

  4. Java线程之Java内存模型(jmm)

    一.Java内存模型(jmm) 线程通信 消息传递 重排序 顺序一致性 Happens-Before As-If-Serial

  5. CodeForces-722C Destroying Array 并查集 离线操作

    题目链接:https://cn.vjudge.net/problem/CodeForces-722C 题意 给个数组,每次删除一个元素,删除的元素作为一个隔断,问每次删除后该元素左右两边最大连续和 思 ...

  6. 解决wps的ppt演示不能打开的问题libbz2.so.1.0

      安装 wps-office-10.1.0.5707-1.a21.x86_64 无法打开ppt 其他正常

  7. PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql

    在一般的 Server 程序中都会有一些耗时的任务,比如:发送邮件.聊天服务器发送广播等.如果我们采用同步阻塞的防水去执行这些任务,那么这肯定会非常的慢. Swoole 的 TaskWorker 进程 ...

  8. vuejs--递归组件(树型表格分享)

    前言    前段时间使用vue做了一套后台管理系统,其中使用最多就是递归组件,也因为自己对官方文档的不熟悉使得自己踩了不少坑,今天写出来和大家一起分享. 递归组件    组件在它的模板内可以递归地调用 ...

  9. 3D拾取技术

    在unity3d中用户通过触摸屏选中虚拟3D世界中的物体进行操控,就须要掌握3d 拾取技术. 3d拾取技术很的简单:由摄像机与屏幕上的触控点之间确定一条射线.由此射线射向3d世界, 最先和此射线相交的 ...

  10. 使用IIS承载WCF服务

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking 1.WCF能够方便的通过IIS承载,此承载模型与ASP.NET和ASP.NET Web Servi ...