取消MySQL timestamp列默认ON UPDATE CURRENT_TIMESTAMP

MySQL自动维护时间戳:DATETIME与TIMESTAMP方案详解与避坑指南 在数据库设计与后端开发中,时间戳字段是记录数据时序维度的核心组件,常用于数据审计、增量同步和业务分析。其原理是通过数据库内置的自动初始化与更新机制,在INSERT和UPDATE操作时自动填充时间,从而将业务逻辑下沉至数据层,确保数据一致性与完整性。这一技术价值在于显著减少开发冗余代码,避免因手动维护遗漏导致的数据失真,并为数据同步、缓存更新等场景提供可靠依据。应用场景广泛涵盖用户行为追踪、商品信息变更监控、增量ETL等。本文聚焦MySQL中实现自动时间戳的两种主流方案:TIMESTAMP类型因其自动时区转换 阅读详情

 

这样设个初始值 就可以了

  `createdAt` timestamp NOT NULL DEFAULT '2017-01-01 00:00:00',

 

 

解决办法实例

 

DROP TABLE IF EXISTS `cd00_feihu`;
CREATE TABLE `cd00_feihu` (
  `id` tinyint(4) NOT NULL DEFAULT '0',
  `t1` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,/*1  如果是个要变更的字段 每次修改该字段自动刷新 ,  使用这个类线,mysql帮我们更新该字段 */
  `t2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', 
  `t3` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `t4` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `tt` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '测试时间格式',  /*2 如果是 每次修改不需要刷新 ,比如就是个新建日期 ,以后都不要修改  使用这个类线 */
  `tt9` datetime DEFAULT NULL COMMENT '测试时间格式1', /* 3  如果是个要变更的字段 每次修改改行数据,该字段我们自己来判断是否需要刷新   使用这个类线   2 3 都一样 只是默认值不同而已 */
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

 

 

 

 

 

 

参考一下:

 

 

只需要为timestamp列定义默认值即可或者设置为NOT NULL

example(例子):
CREATE TABLE cd00_feihu(
t1 TIMESTAMP,
t2 TIMESTAMP NOT NULL,
t3 TIMESTAMP DEFAULT 0,
t4 TIMESTAMP
)

 

 

 

 

 

参考:http://blog.youkuaiyun.com/zht666/article/details/10373923

MySQL授权用户:

grant all on *.* to root@'%' identifized by "123456";

flush privileges;

转自:http://feihu.cd00.cn/itweb/index.php/mysql-timestamp-disable-on-update-current_timestamp

Q:don't want timestamp auto update time when record update?
我想取消timestamp列默认为设置成记录被更新时的时间戳?

A:you should disable ON UPDATE CURRENT_TIMESTAMP for timestamp column.
你应该取消timestamp列的ON UPDATE CURRENT_TIMESTAMP属性。

Q:how to disable ON UPDATE CURRENT_TIMESTAMP?
如何才能取消ON UPDATE CURRENT_TIMESTAMP的默认设置呢?

A:just define the default value for timestamp or just define it not null
只需要为timestamp列定义默认值即可或者设置为NOT NULL

example(例子):
CREATE TABLE cd00_feihu(
t1 TIMESTAMP,
t2 TIMESTAMP NOT NULL,
t3 TIMESTAMP DEFAULT 0,
t4 TIMESTAMP
)

after execute, the source of the table will be(执行后,表的SQL代码将会变成下面的样子)
CREATE TABLE cd00_feihu(
t1 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
t2 TIMESTAMP NOT NULL DEFAULT ‘0000-00-00 00:00:00′,
t3 TIMESTAMP NOT NULL DEFAULT ‘0000-00-00 00:00:00′,
t4 TIMESTAMP NOT NULL DEFAULT ‘0000-00-00 00:00:00′
) ENGINE=INNODB DEFAULT CHARSET=gbk

another solution(另一个解决方案):
update cd00_feihu set t1=t1, [other column…]

feihu it-web 2012-5-10

and if you already create the table and it have the on update current_timestamp,how to alter table to remove it,here it is
如果已经设置成了on update current_timestamp,那么如何修改表来移除这个特性呢,下面就是解决办法:

case 1:
ALTER TABLE `mydb`.`cd00_feihu` CHANGE `t1` `t1` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

case 2:
ALTER TABLE `mydb`.`cd00_feihu` CHANGE `t1` `t1` TIMESTAMP DEFAULT NULL NULL;
ALTER TABLE `mydb`.`cd00_feihu` CHANGE `t1` `t1` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

 

解决MySQL的这个问题的简单办法是:尽量使用datetime代替timestamp列,这样就能避免多个同一个表中timestamp列带来的问题了。

我的依据是:http://stackoverflow.com/questions/409286/datetime-vs-timestamp

Timestamps in MySQL generally used to track changes to records, and are often updated every time the record is changed. If you want to store a specific value you should use a datetime field.

 

关于datetime和timestamp最重要的区别是:timestamp带有时区,而datetime没有时区,datetime只是一个固定的时间。如下例子:

mysql> show variables like '%time_zone%';
+------------------+---------------------+
| Variable_name    | Value               |
+------------------+---------------------+
| system_time_zone | India Standard Time |
| time_zone        | Asia/Calcutta       |
+------------------+---------------------+

mysql> create table datedemo(
    -> mydatetime datetime,
    -> mytimestamp timestamp
    -> );


mysql> insert into datedemo values ((now()),(now()));
mysql> select * from datedemo;
+---------------------+---------------------+
| mydatetime          | mytimestamp         |
+---------------------+---------------------+
| 2011-08-21 14:11:09 | 2011-08-21 14:11:09 |
+---------------------+---------------------+

mysql> set time_zone="america/new_york";

mysql> select * from datedemo;
+---------------------+---------------------+
| mydatetime          | mytimestamp         |
+---------------------+---------------------+
| 2011-08-21 14:11:09 | 2011-08-21 04:41:09 |
+---------------------+---------------------+

The above examples shows that how TIMESTAMP date type changed the values after changing the time-zone to 'america/new_york' where DATETIMEis unchanged.
I've converted my answer into article so more people can find this useful.
http://www.tech-recipes.com/rx/22599/mysql-datetime-vs-timestamp-data-type/

 

三极管稳压电路仿真分析 Z1的负极连接到三极管的基极,三极管发射极E是输出,形成了一个射极跟随器,也就是说,E极的电压随着B电压变化而变化,但BE之间有一个压降,一般硅管0.7V左右,假设B极是6.7V,那E极就是6.7-0.7=6V,所以就有一个公式VOUT=Vz-Vbe,可以根据VOUT来选择合适的稳压管。从稳压管的SPEC中我们可以看到,Vz@Izt这个参数,指在Izt=20mA时,稳压管的稳压值Vz=5.1V,也就是说流过稳压管的电流在20mA以上,稳压效果最佳。三极管导通之后,E点电压会升高,当升高到Vbe。 阅读详情

相关推荐

NOIP2008年普及组初赛题目答案及解析

NOIP2008年初赛详细题解

城南蝈蝈 926

删除mysql on update_如何从MySQL中的现有列中删除ON UPDATE CURRENT_TIMESTAMP?

ON UPDATE CURRENT_TIMESTAMP定义没有显式时间戳的更新将导致当前时间戳值的更新。您可以使用ALTER命令从列中删除ON UPDATE CURRENT_TIMESTAMP。语法如下ALTERTABLEyourTableNameCHANGEyourTimeStampColumnNameyourTimeStampColumnNametimestampNOTNULLd...

weixin_39840606的博客 975

车载机器人终极解决方案:从功能叠加到生态融合的颠覆性变革

本文提出一种融合智能汽车与家居技术的车载机器人架构。其创新点包括:1)基于多模态传感器的拟人化硬件设计,实现声源定位误差<5°、体温检测精度±0.3℃;2)跨模态情感计算引擎,综合面部表情、心率等数据构建三维情绪模型;3)协议自适应中间件,支持小米、华为等多品牌智能家居设备即插即用;4)环境自适应舵机控制,-30℃环境下扭矩保持率达92.5%。测试数据显示,该方案使交互步骤减少60%,用户满意度提升58%,日均使用时长增加2.3倍,为"人-车-家"生态融合提供了可行技术路径。

qq_42671193的博客 1124

MySQL 设置和取消“ON UPDATE CURRENT_TIMESTAMP”

文章目录1. 设置“ON UPDATE CURRENT_TIMESTAMP”2. 取消“ON UPDATE CURRENT_TIMESTAMP” 1. 设置“ON UPDATE CURRENT_TIMESTAMP”   TIMESTAMP和 DATETIME列可以自动初始化并更新为当前日期和时间(即当前时间戳),TIMESTAMP或 DATETIME列定义可以为默认值和自动更新值(一个而不是另一个)或两者都不指定当前时间戳,不同的列可以具有不同的自动属性组合,可以使用 DEFAULT CURRENT_TIM

成屿的专栏 1万+

AUTOSAR RTE配置实战:从ECU分区到Task映射的完整指南

本文提供了一份AUTOSAR RTE配置的完整实战指南。从创建ECU分区、定义OS任务,到实现Runnable Entity与Task的精确映射,详细解析了每一步的操作要点与常见陷阱。文章结合配置工具界面,旨在帮助开发者高效完成RTE配置,确保系统实时性与数据一致性,是掌握AUTOSAR核心开发流程的实用参考。

weixin_29228203的博客 484

解决RuntimeError: Couldn‘t load custom C++ ops. This can happen if your PyTorch

刚下好yolov8的代码,想测一下能否成果,果然没成功,报错如下简单来说就是torchvision和torch不匹配,就很离谱,我照着版本对应关系pip install的啊,怎么会不匹配建议先看看你的版本我是下图红框这个首先确定自己torch没问题,因为我的3090这个卡目前cuda版本是11.1,这个whl是早就下好的,一般1-2G,有问题重新下就麻烦了然后我pip install了很多次torchvision==0.11.3,都没啥用。想试着改改版本,结果要下其他的torch版本,就更不可能了。

DZY的博客 2247

mysql 去掉current_timestamp_解决MySQL不能有两个CURRENT_TIMESTAMP

MySQL5.5的版本, 在建表的时候如果同时有两个字段是timestamp且都默认值是current_timestamp则会报上面的错误。下面是尝试过的两种方案,都行不通Bad case`insert_time` timestamp DEFAULT now(),`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CUR...

weixin_34808718的博客 1131

集群路径规划实战(一)之EGO-swarm环境搭建与调试

本文详细介绍了EGO-swarm分布式无人机集群运动规划系统的仿真环境搭建与调试全流程。内容涵盖ROS Melodic安装、代码获取、依赖库配置、编译问题解决(如multi_map_server头文件缺失)以及最终通过roslaunch启动集群仿真与Rviz可视化,为学习和研究集群路径规划算法提供了可运行的实战平台。

weixin_29243279的博客 250

去掉Timestamp类型输出时的小数位“.0”

解决方法: 方法一:数据库设置时间格式(MySQL) 函数:DATE_FORMAT(date, format); 用法示例:(详细的使用方法:MySQL date_format()函数) SELECT orderNumber, DATE_FORMAT(orderdate, '%Y %m %d %T') orderDate, FROM orders; 方法二:后端设置时间格式(java) Date date = new Date(); //获取当前时间戳 SimpleDateFormat formatter

shargin的博客 9442

Xilinx平台SRIO介绍(二)SRIO IP核基础知识

使用SRIO IP核必须掌握的基础知识! 理解了这篇,剩下的只是代码罢了。

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 4万+

搭建AutoSAR开发环境

任何开发都需要一套开发环境,包括软硬件环境,笔者后续将介绍的是 NXP 的 S32K144 配套的开发板。接下来详细介绍怎么获取这些软硬件工具。仅供个人学习使用!

cfl927096306的博客 6106

mysql on update currenttimestamp_关于mysql:如何从现有列中删除ON UPDATE CURRENT_TIMESTAMP?...

我对mysql 5.5数据库进行了转储,并将其加载到5.6服务器中。转储将ON UPDATE CURRENT_TIMESTAMP添加到了一堆以前没有的列中。我正在搜索ALTER TABLE语句,该语句将删除ON UPDATE CURRENT_TIMESTAMP规则,而不进行任何其他更改。在我的想象中,它应该是ON UPDATE NOOP或ON UPDATE NO_CURRENT_TIMESTAMP...

weixin_35565325的博客 503

深度解析:LPDDR5 Receiver 的挑战与应对

LPDDR5 的数据速率已经来到Tbit​DataRate1​≈156ps在6400Mbps时也就是说,。👉 这就是为什么成为 LPDDR5 的“标配”。

weixin_43199439的博客 211

mysql 去掉on update_取消MySQL timestamp列默认ON UPDATE CURRENT_TIMESTAMP | 学步园

Q:don't want timestamp auto update time when record update?我想取消timestamp列默认为设置成记录被更新时的时间戳?A:you should disable ON UPDATE CURRENT_TIMESTAMP for timestamp column.你应该取消timestamp列的ON UPDATE CURRENT_TIMEST...

weixin_42501298的博客 648

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

mysql 去掉on update_取消MySQL timestamp列默认ON UPDATE CURRENT_TIMESTAMP

from:http://blog.youkuaiyun.com/zht666/article/details/10373923方法alter table tablenamecolumn TIMESTAMP NOT NULL DEFAULT ‘0000-00-00 00:00:00′关于timestamp初始化时,不同的参数的结果如下:初始化代码CREATE TABLE cd00_feihu( t1 TIMES...

weixin_39647773的博客 446

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

MySQL ALTER 时间字段自动更新的设置与取消

MySQL ALTER 时间字段自动更新的设置与取消。自动更新 与 不自动更新

灰色童话 2983

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Mysql的timestamp(时间戳)详解以及2038问题的解决方案

mysql的timestamp 虽然好用,但是会有一个2038年的问题,本文将带你们详细了解 mysql的timestamp 以及2038问题

ratel的博客 10万+

MySQL timestamp只能有一列被设为CURRENT_TIMESTAMP

创建数据库表时,遇到问题: 错误代码: 1293 Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause    在MySQL 5.6.5版本之前,是只能有一列能够在初始化的时候或者被更新的时候自动设置为CURRE

whucs2的专栏 2779

【转】mysql各版本timestamp默认值

生产环境中部署着各种版本的MySQL,包括MySQL 5.5/5.6/5.7三个大版本和N个小版本,由于MySQL在向上兼容性较差,导致相同SQL在不同版本上表现各异,下面从几个方面来详细介绍时间戳数据类型。 时间戳数据存取 在MySQL上述三个大版本中,默认时间戳(Timestamp)类型的取值范围为'1970-01-01 00:00:01' UTC至'2038-01-19 03:14...

MYSQL轻松学的专栏 1万+

Automatic Initialization and Updating for TIMESTAMP and DATETIME

Automatic Initialization and Updating for TIMESTAMP and DATETIME As of MySQL 5.6.5,TIMESTAMPandDATETIMEcolumns can be automatically initializated and updated to the current date and time (that ...

渔夫数据库笔记 527

(错)1293mysql_MySQL错误TIMESTAMP column with CURRENT_TIMESTAMP的解决方法

在部署程序时遇到的一个问题,MySQL定义举例如下:复制代码 代码如下:CREATE TABLE `example` (`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,`created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,`lastUpdated` TIMESTAMP NOT NULL ON UPD...

weixin_29446109的博客 421

mysql 取消时间字段timestamp ON UPDATE CURRENT_TIMESTAMP

ALTER TABLE `t_shop` CHANGE `create_time` `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;  

Lei_Da_Gou的博客 1884

mysql timestamp类型字段的CURRENT_TIMESTAMP与ON UPDATE CURRENT_TIMESTAMP属性

timestamp的CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP属性

qinganjing的博客 493

MySQL报错: there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDAT

mysql报错:Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause 表中出现多个timestamp并设置为current_timestamp的时候报错 Incorrect table definition; t...

qq_44678240的博客 2508
上一篇: mysql日志文件过大导致磁盘空间不够的问题
下一篇: ajax 发送post请求传参给SpringMVC
琅琊山二当家
博客等级 码龄18年 447粉丝 322原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值