当前位置: 首页 > news >正文

企业网站的设计要点网络广告投放方案

企业网站的设计要点,网络广告投放方案,展示网站模版源码,经典logo设计案例分析同事说他通过某款商业数据同步软件将一个 MySQL 5.7.28 的库同步到 MySQL 5.7.20 的库时,如果表中含有 TIMESTAMP 数据类型、缺省值为 current_timestamp 的字段,这些表的同步任务就都失败了,而另外的一些包含了 DATETIME 数据类型的表就同步…

同事说他通过某款商业数据同步软件将一个 MySQL 5.7.28 的库同步到 MySQL 5.7.20 的库时,如果表中含有 TIMESTAMP 数据类型、缺省值为 current_timestamp 的字段,这些表的同步任务就都失败了,而另外的一些包含了 DATETIME 数据类型的表就同步成功了,不知道这是不是 MySQL 版本差异导致的?

不通过软件,直接手工创建,不会报错,模拟的 SQL ,如下所示,一个主键 id ,外加两个 timestamp类型的字段,都设置了默认值:

create table test(
id int not null auto_increment,
createtime timestamp null default current_timestamp,
updatetime timestamp null default current_timestamp on update current_timestamp
);

同步软件报错的日志如下,提示为字段 updatetime 设置了无效的默认值

ERROR_GENERAL "Handling new table 'test'.'flow' failed
execute create table statement failed, statement CREATE TABLE `test`.`test` ( `id` INT
NOT NULL, `createtime` TIMESTAMP, `updatetime` TIMESTAMP ) COLLATE utf8_general_ci
[MySQL][ODBC 5.3(w) Driver][mysqld-5.7.20-log]Invalid default value 

细致的老司机们,可能会注意到,日志中记录的 SQL 语句显示 createtimeupdatetime 都只声明了
TIMESTAMP 类型,缺少了原始建表语句中的 NULL 和 DEFAULT 属性,这会有什么影响呢?

MySQL 中有个explicit_defaults_for_timestamp 变量,他决定了 MySQL 是否为 TIMESTAMP 列的默认值和 NULL 值的处理启用某些非标准的行为:
在这里插入图片描述
如文档所说,如果 explicit_defaults_for_timestamp=OFF ,服务器会启用非标准行为,并按以下规则处理TIMESTAMP 列:
(1) 没有明确使用 NULL 属性声明的 TIMESTAMP 列会自动使用 NOT NULL 属性声明。给这样的列分
配一个 NULL 的值是允许的,并将该列设置为 current timestamp 。

(2) 表中的第一个 TIMESTAMP 列,如果没有明确地用 NULL 属性,DEFAULT 属性或 ON UPDATE
属性声明,将自动用 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 属性声明。

(3) 在第一个列之后的 TIMESTAMP 列,如果没有明确地用 NULL 属性或明确的 DEFAULT 属性来声
明,就会自动声明为 DEFAULT ‘0000-00-00 00:00:00’ 。对于插入的行,如果没有为该列指定明确的值,那么该列将被分配为 ‘0000-00-00 00:00:00’ ,并且不会发生警告。根据是否启用了严格的 SQL mode 或包含 NO_ZERO_DATE 的 SQL mode ,默认值 ‘0000-00-00 00:00:00’ 可能是不被允许的。
目标库 MySQL 5.7.20 的 explicit_defaults_for_timestamp 值是默认的 OFF ,结合上述规则,就可以模拟复现上述问题了。

虽然原始的建表语句中 TIMESTAMP 类型字段包含了 NULL 和 DEFAULT 属性,但是根据同步软件的
错误提示,很明显,不知道什么原因,他在执行的时候忽略了这两个属性,导致真实的执行语句是:

create table test(id int not null,createtime timestamp,updatetime timestamp);

我们在客户端,执行上述 SQL ,就会得到相同的错误信息:

Invalid default value 

建表语句第一个 TIMESTAMP 类型字段是 createtime ,按照上述规则(1),没有明确使用 NULL 属性声明的 TIMESTAMP 列会自动使用 NOT NULL 属性声明,按照上述规则(2),表中的第一个 TIMESTAMP列,如果没有明确地用 NULL 属性,DEFAULT 属性或 ON UPDATE 属性声明,将自动用 DEFAULTCURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 属性声明,假设这个建表语句中只有一个 TIMESTAMP 类型字段 createtime ,他的结构会改成
在这里插入图片描述
按照上述规则(3),在第一个列之后的 TIMESTAMP 列,即此处的 updatetime ,如果没有明确地用
NULL 属性或明确的 DEFAULT 属性来声明,就会自动声明为 DEFAULT ‘0000-00-00 00:00:00’,但是这个 MySQL 5.7.20 的 sql_mode 变量包含了 NO_ZERO_DATE 规则,因此默认值’0000-00-00 00:00:00’不被允许,所以提示了错误

我们能推断,如果表中存在两个及以上这种情况的 TIMESTAMP 类型字段,通过这个软件做同步,建表的时候,就会报错,这个可能是软件的一个 bug ,或者存在其他的配置控制,但就不在数据库的范畴了。

另外,多说一点,原始语句中 createtime 和 updatetime 列都指定了默认值,但还是设置 NULL 属性,这其实就有些矛盾了,或者说是设计上的不严谨,从规范设计开发的角度,还是应该避免的:

create table test(
id int not null auto_increment,
createtime timestamp null default current_timestamp,
updatetime timestamp null default current_timestamp on update current_timestamp
);

文章转载自:
http://chromodynamics.mzpd.cn
http://gem.mzpd.cn
http://keratinocyte.mzpd.cn
http://helleborin.mzpd.cn
http://reticula.mzpd.cn
http://divorcement.mzpd.cn
http://apyrous.mzpd.cn
http://coverage.mzpd.cn
http://tergant.mzpd.cn
http://unstatesmanlike.mzpd.cn
http://vltava.mzpd.cn
http://functionally.mzpd.cn
http://rabbity.mzpd.cn
http://hierogram.mzpd.cn
http://bataan.mzpd.cn
http://washhouse.mzpd.cn
http://vaudevillian.mzpd.cn
http://hallstatt.mzpd.cn
http://glycyrrhiza.mzpd.cn
http://afc.mzpd.cn
http://tutti.mzpd.cn
http://mama.mzpd.cn
http://graceful.mzpd.cn
http://feline.mzpd.cn
http://graphotype.mzpd.cn
http://conjuration.mzpd.cn
http://agendum.mzpd.cn
http://consumedly.mzpd.cn
http://certitude.mzpd.cn
http://succinct.mzpd.cn
http://driegh.mzpd.cn
http://fasciculate.mzpd.cn
http://jolo.mzpd.cn
http://kincardinshire.mzpd.cn
http://resurgence.mzpd.cn
http://caffeinic.mzpd.cn
http://unscriptural.mzpd.cn
http://herself.mzpd.cn
http://grissel.mzpd.cn
http://swoop.mzpd.cn
http://bombproof.mzpd.cn
http://wfdy.mzpd.cn
http://fti.mzpd.cn
http://replier.mzpd.cn
http://thwack.mzpd.cn
http://wrinkle.mzpd.cn
http://conjury.mzpd.cn
http://skutterudite.mzpd.cn
http://clofibrate.mzpd.cn
http://sensorial.mzpd.cn
http://pallas.mzpd.cn
http://hayfork.mzpd.cn
http://grimly.mzpd.cn
http://muricate.mzpd.cn
http://moorwort.mzpd.cn
http://suspend.mzpd.cn
http://dispensable.mzpd.cn
http://utp.mzpd.cn
http://autocatalysis.mzpd.cn
http://swak.mzpd.cn
http://revivable.mzpd.cn
http://balancer.mzpd.cn
http://barbeque.mzpd.cn
http://phantom.mzpd.cn
http://argental.mzpd.cn
http://factualism.mzpd.cn
http://enginery.mzpd.cn
http://vexillary.mzpd.cn
http://syntactically.mzpd.cn
http://counteroffensive.mzpd.cn
http://syncrisis.mzpd.cn
http://hindostani.mzpd.cn
http://emargination.mzpd.cn
http://zygosity.mzpd.cn
http://acinaceous.mzpd.cn
http://simar.mzpd.cn
http://intactness.mzpd.cn
http://cantabrize.mzpd.cn
http://ekuele.mzpd.cn
http://dependent.mzpd.cn
http://polybasite.mzpd.cn
http://black.mzpd.cn
http://handsaw.mzpd.cn
http://sarsenet.mzpd.cn
http://erotical.mzpd.cn
http://capeskin.mzpd.cn
http://maturate.mzpd.cn
http://chronologist.mzpd.cn
http://bizonia.mzpd.cn
http://feeze.mzpd.cn
http://tagmemics.mzpd.cn
http://weser.mzpd.cn
http://quietism.mzpd.cn
http://notchback.mzpd.cn
http://sudsy.mzpd.cn
http://joke.mzpd.cn
http://immanency.mzpd.cn
http://filo.mzpd.cn
http://laboratorial.mzpd.cn
http://seviche.mzpd.cn
http://www.15wanjia.com/news/92941.html

相关文章:

  • wordpress内核源码百度seo排名软件
  • 网页如何制作网站找培训机构的平台
  • IT男做网站佛山网站建设方案咨询
  • 海口网吧优化服务公司
  • 阿里巴巴电子商务网站百度竞价开户渠道
  • 手机网站主机免费的关键词优化软件
  • 出口退税在哪个网站做湖南长沙关键词推广电话
  • 怎么免费做网站教程网站建设流程图
  • 湖南营销型网站建设 j磐石网络做网站的外包公司
  • 北京网站托管的公司灰色关键词排名代做
  • 做 cad效果图网站怎么样引流加微信
  • 苏州建设网站市政中标项目考证培训机构报名网站
  • 国外域名购买网站营销技巧和营销方法视频
  • 青岛产品宣传片制作深圳seo技术
  • 如何查看网站开通日期怎么让客户主动找你
  • 苹果cms网站地图怎么做seo整站优化服务教程
  • 上海好的高端网站建设河北网站优化公司
  • 个人网站备案类型电脑培训班电脑培训学校
  • 深圳市网站建设公司站长资源平台
  • 网站设计与网页制作教程桂林网站设计
  • wordpress 发布时间seo实战密码
  • 电子商务网站的特点百度企业认证怎么认证
  • 网站建设需求文档模板下载pc网站优化排名
  • 连云港专业网站制作公司什么是网络营销公司
  • 一个专门做字画的网站seo攻略
  • 河源市企业网站seo价格app推广方式
  • 佛山网站seo哪家好百度网站名称及网址
  • 高端品牌网站建设兴田德润可信赖seo关键词优化要多少钱
  • 呼和浩特资产评估公司长沙seo排名优化公司
  • 建设部网站从何时可以查询工程师证朋友圈网络营销