当前位置:首页 > 日记 > 正文

MySQL中多个时间戳设置的解释

MySQL中多个时间戳设置的解释
时间戳设置默认值默认current_timestamp
时间戳设置自动更新的表的更改更新current_timestamp

但由于
最多一个表只能有一个字段设置current_timestamp
它是不可能在两线设置默认的current_timestamp。

还有一件事要注意
复制代码代码如下所示:
创建表(设备)
` ID ` int(10)符号的非空auto_increment,
`告诉` int(10)符号的非空的默认'0'comment'toid,
`时间创造创造时间`时间零评论,
`更新时间戳不`零违约current_timestamp评论最后更新时间,
主键(id),
唯一索引`告诉`(`告诉`)

评论=装置表
整理= 'utf8_general_ci
InnoDB引擎=;

它不象这样工作。
原因是,MySQL将默认表中第一时间戳字段(设置非空)隐式设置,该设置defaulat current_timestamp.so无异于设置了两current_timestamp。

需求分析
在表中,有两个领域,创造时间和更新。
1插入时,不设置两个字段并将其设置为当前时间。
2更新时,在SQL两方面没有设置和更新将改变当前时间

这样的要求是不可能的事。因为你不能避免两字段设置current_timestamp

有几种解决方案:
1使用触发器
插入和更新触发时触发时间设置。
互联网上的人们使用这种方法,当然,这种方法的可用性是毋庸置疑的,但对于实际场景来说,解决小问题和增加复杂性无疑是无疑的。
2将第一个时间戳的缺省值设置为0
表结构如下:
复制代码代码如下所示:
创建表(设备)
` ID ` int(10)符号的非空auto_increment,
`告诉` int(10)符号的非空的默认'0'comment'toid,
`时间创造创造时间`时间零违约0评论,
`更新时间戳不`零违约current_timestamp更新current_timestamp评论最后更新时间,
主键(id),
唯一索引`告诉`(`告诉`)

评论=装置表
整理= 'utf8_general_ci
InnoDB引擎=;

通过这种方式,您需要的插入和更新操作将更改为:
插入装置告诉= 11,创造时间= null;
更新设备设置告诉= 22,ID = 1;

值得注意的是这里的创造时间插入必须设置为null!
虽然我认为这个方法很糟糕,但它只需要修改插入操作来减少SQL语句,这是值得修改的,这确实是一种修改最小数据库并保证需求的方法,当然,这种方法也可以与1种方法同时使用,这样可以减少写触发器的次数。
3个古老而诚实的真实SQL语句使用时间戳。
这是大多数人和最经常选择的。
表格结构上的设计不多:
复制代码代码如下所示:
创建表(设备)
` ID ` int(10)符号的非空auto_increment,
`告诉` int(10)符号的非空的默认'0'comment'toid,
`时间创造创造时间`时间零违约current_timestamp评论,
`更新时间戳不`零评论的最后更新时间,
主键(id),
唯一索引`告诉`(`告诉`)

评论=装置表
整理= 'utf8_general_ci
InnoDB引擎=;

在这种方式中,你需要写具体的时间戳,当插入和更新操作。
插入装置告诉= 11,创造时间= '2012-11-2 10:10:10 ',最后更新时间= '2012-11-2 10:10:10
更新设备设置告诉= 22,最后更新时间= '2012-11-2 10:10:10'where ID = 1
事实上,想想看,也有这样的优点:current_timestamp是MySQL特定的,当数据库从MySQL数据库、业务逻辑代码没有被修改。

西蒙兹:这三种方法的选择完全取决于你自己的考虑。顺便说一下,最后,我仍然选择第三种方法。

相关文章

oracle的死锁处理方法

oracle的死锁处理方法

处理方法,死锁,电脑软件,oracle,当Oracle数据库有死锁时,可以通过以下处理步骤来解决: 第一步:尝试删除在SQLPlus SQL命令,如果能顺利取出,然后一切都会好起来的!但通常情况下,当出现死锁时,我们希望通过命令行或通过Oracle管理工具删除死锁会话。…

器Neotrace是neotrace.exe-使用

器Neotrace是neotrace.exe-使用

电脑软件,Neotrace,neotrace,exe,点评:neotrace.exe是迈克菲网络安全套装的一部分,用来防止黑客攻击的电脑 neotrace.exe器Neotrace或工艺文件: 进程名称:McAfee NeoTrace 过程类别:安全风险的过程 英文描述: neotrace.exe是一个过程,属于McAfee…

抖音视频滚动歌词是怎么加上去的?附

抖音视频滚动歌词是怎么加上去的?附

抖音视频滚动歌词是怎么加上去的?附制作方法介绍,抖音视频,设置,播放器,手机音乐,录制,录屏软件,酷狗音乐,制作,抖音视频滚动歌词是现在很火的,很多朋友看了之后,都想要学习制作。而抖音视频滚动歌词是怎么加上去的?如何制作呢?一起看看下文的介绍吧。…

Oracle查看和修改最大连接数的具体

Oracle查看和修改最大连接数的具体

修改,最大连接数,具体步骤,电脑软件,Oracle,第一步,在cmd命令行,输入SQLPLUS 第二步,根据提示输入用户名和密码。 1。查看流程和会话参数 显示参数过程 名称类型值 db_writer_processes整数1 gcs_server_processes整数0 job_queue_proc…

excel表格中动态图的制作方法excel

excel表格中动态图的制作方法excel

动态图,表格,制作方法,电脑软件,excel,如何在excel表格中绘制动态地图,并制作了excel表格动态地图,供大家参考。 excel表格中动态图的制作方法 动态图步骤1:现在一步一步地做。 例如,选择此区域 excel表格1中动态图的一种制作方法 使动态…

MySQL优化必须调整的10种配置

MySQL优化必须调整的10种配置

优化,配置,调整,电脑软件,MySQL,当我们被雇来监视性能,人们希望我们可以看看mysql的配置及完善的建议。很多人在事件发生后很惊讶,因为我们认为他们只改变一些设置,即使有成百上千的配置项。这篇文章的目的是给你的配置项的一个非常重要的表。…

Win8或Win8.1的IE10和IE11不能显示

Win8或Win8.1的IE10和IE11不能显示

解决方案,显示,闪光,电脑软件,点评:最近,很多朋友出现IE11 Win8系统不显示Flash和IE11不能播放Flash,他们大多数来自IE浏览器的安全权限和系统问题。下面有几个好的解决方案,你可以参考一下。 IE11 Flash的问题是一个很大的麻烦win8.1.we Win8…

MySQL字符集的基本类型及统一字符

MySQL字符集的基本类型及统一字符

字符集,基本类型,电脑软件,MySQL,下面的文章主要介绍了mysql字符集的基本类型,统一字符集的实际操作方法,如相关内容的介绍,相关内容下面是mysql字符集的说明,希望对以后的学习或工作有很大的帮助。 1。字符集类型 在MySQL服务器中使用字符集…

计算机是怎样开始慢了如何提高win7

计算机是怎样开始慢了如何提高win7

是怎样,慢了,速度,电脑软件,点评:在电脑启动的过程中时间比较慢,开始抱怨我怎么会这么慢,因为需要读取数据,所以让计算机做更多的工作,所以他们需要更多的时间来引导,可以删除一些不必要的启动项,这将大大提高计算机的开机速度。 每天要做的第一件…

otwo.exe的过程是怎样的

otwo.exe的过程是怎样的

的是,过程,是怎样,电脑软件,otwo,评论:对otwo.exe工艺简介 进程文件:华拓或otwo.exe 进程名称:华拓 工艺种类: 英文描述: 对不起,这个过程没有英文描述。 中文参考: 管弦乐队歌曲的外挂程序实现了相互更新的功能。 制作人:9you 属于:9you 系统过程…

66键盘设置直接发送语句功能的操作

66键盘设置直接发送语句功能的操作

66键盘设置直接发送语句功能的操作过程,66键盘,设置直接发送语句,今天就讲解66键盘设置直接发送语句功能的操作过程,一起去看看66键盘设置直接发送语句功能的操作过程,相信会有帮助哦。66键盘设置直接发送语句功能的操作过程1、若是有朋友想要…

区分案例和案例的MySQL查询

区分案例和案例的MySQL查询

案例,查询,电脑软件,MySQL,1。一种方法是设置表或行的排序规则,使其为二进制或区分大小写。在MySQL中,列排序的命名方法如下所示: * _bin:代表二进制区分排序规则,也就是说它是区分大小写的 * _cs:敏感的排序,区分大小写 * _ci:大小排序,不区分大小…