业务场景:线上数据同步到本地(开发测试)
版本:线上-5.7 本地-8.0
尝试操作方式:
1、SQL文件
2、备份还原
3、navicat自带传输工具
最终结果:只能备份其中的部分数据,视图同步下来出现 Incorrect DATETIME value: '' 问题
尝试解决方案:
按上述操作之后又会出现新的错误,MySQL服务无法启动
原因:第一项的大概意思是没有服务引用MySQL服务就无法启动
解决方案:去掉 NO_AUTO_CRESTE_USER
然而经过重重尝试,将线上数据同步的时候还是会报大量的错误
例如:Row size too large (> 8126).
原因:单个实体数据大小过于大
解决方法:将数据库默认的严格执行改为宽松
具体操作:修改my.ini配置文件 加上最后一行配置
到这里在执行SQL文件的时候就不会有报错了
可是新的问题又跃然纸上 Incorrect DATETIME value: ''
当我想打开视图时,出现这个报错。这谁受得了啊!
夸夸一顿搜索下来,获得的大致信息是 5.7的datetime可以允许为空字符串,8.0的如果这个字段为空字符串就会报错。
接着奏乐,接着改!
解决方案:查询的时候 使用语法 case when 如果有" "这种情况直接转为NULL
结果:天道好轮回,苍天饶过谁!完全不起作用!
请教大佬!
相信你肯定也看不清,嘿嘿!总的方针是把 5.7版本中的 isnull()函数替换为 is NUll 的语法。文章来源:https://www.toymoban.com/news/detail-641343.html
这搜索半天的信息完全不搭边,有被上了一课!文章来源地址https://www.toymoban.com/news/detail-641343.html
到了这里,关于MySQL版本不同带来Incorrect DATETIME value: ‘‘问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!