`
sheungxin
  • 浏览: 103588 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mysql数据导入失败(sql_mode)

sql 
阅读更多
准备在本地搭建测试库环境,把远程测试库结构及数据导出。在本地建库还原过程中一直失败,之前一直这么干的,所以很纳闷。报错信息中提示invalid value for timestamp,时间字段的默认值被设置为“0000-00-00 00:00:00”。通过度娘定位可能是sql_mode问题,通过“select @@sql_mode”命令查询本:
sql_mode(本地库)
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

sql_mode(远程库)
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION

对比发现本地库sql_mode中有“NO_ZERO_IN_DATE,NO_ZERO_DAT”,时间中含有0不合法

mysql5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。
ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。
TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。用于事物时,会进行事物的回滚。
STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。

sql_mode常用值如下:
ONLY_FULL_GROUP_BY:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中

NO_AUTO_VALUE_ON_ZERO:
该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。

STRICT_TRANS_TABLES:
在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
NO_ZERO_IN_DATE:
在严格模式下,不允许日期和月份为零

NO_ZERO_DATE:
设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。

ERROR_FOR_DIVISION_BY_ZERO:
在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL

NO_AUTO_CREATE_USER:
禁止GRANT创建密码为空的用户

NO_ENGINE_SUBSTITUTION:
如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

PIPES_AS_CONCAT:
将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似

ANSI_QUOTES:
启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

如果使用mysql,为了继续保留大家使用oracle的习惯,可以对mysql的sql_mode设置如下:
在my.cnf添加如下配置
[mysqld]
sql_mode='ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES


参考:http://blog.csdn.net/wyzxg/article/details/8787878
0
0
分享到:
评论

相关推荐

    修改php.ini实现Mysql导入数据库文件最大限制的修改方法

    里介绍修改php.ini实现Mysql导入数据库文件最大限制的修改方法,简单说明了wampserver服务器上针对php.ini配置文件上传限制参数、内存限制参数以及post传输参数等修改方法,需要的朋友可以参考一下

    matlab导入excel代码-utl_calculate_mode_for_each_row:关键词:sassqljoin合并大数据分析宏o

    matlab导入excel代码utl_calculate_mode_for_each_row 关键词:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工智慧AI Python R Java Javascript WPS Matlab SPSS Scala ...

    mysql5.x升级到mysql5.7后导入之前数据库date出错的快速解决方法

    mysql5.x升级至mysql5.7后导入之前数据库date出错的解决方法如下所示:  修改mysql5.7的配置文件即可解决,方法如下:  linux版:找到mysql的安装路径进入默认的为/usr/share/mysql/中,进行对my-default.cnf...

    解析windows下使用命令的方式安装mysql5.7的方法

    这里注意一下sql_mode 这里写的是让MySQL使用习惯类似Oracle,具体哪些什么意思大家很容易百度查到 [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] sql_mode='NO_AUTO_VALUE_ON_ZERO,...

    Iris是一个高度可配置的灵活服务,用于分页和信息传递-python

    ./db/schema_0.sql 导入虚拟数据:mysql -u USER -p -o iris < ./db/dummy_data.sql dummy_data.sql包含以下实体: 带密码的用户演示 演示团队 demo_team 应用程序 带密钥的自动警报:a7a9d7657ac8837cd7dfed0b...

    mysql5的sql文件导入到mysql4的方法

    1、将mysql5里导出的sql文件导入到mysql5中。 2、用mysqldump -uroot -p1234 –opt –compatible=mysql40 -A -re:\localhost.sql –compatible=name参数描述如下: –compatible=name Change the dump to be ...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    1.7.2 直接安装mysql5.5,采用数据导出/导入方式升级 59 1.8 性能测试:mysql5.5与mysql5.1 60 第2章 半同步复制 62 2.1 半同步复制简介 62 2.2 半同步复制安装配置 63 2.3 参数说明 63 2.4 功能测试 64 ...

    iris:Iris是一种用于寻呼和消息传递的高度可配置和灵活的服务

    导入虚拟数据: mysql -u USER -p -o iris < ./db/dummy_data.sql dummy_data.sql包含以下实体: 用户demo和密码demo 团队demo_team 带有密钥的应用程序Autoalerts a7a9d7657ac8837cd7dfed0b93f4b8b...

    Iris是用于分页和消息传递的高度可配置和灵活的服务。-Python开发

    Iris Iris核心,API,UI和发件人服务。 有关第三方集成的支持,请参阅iris-relay,这是一种无状态代理,旨在位于..../db/schema_0.sql导入虚拟数据:mysql -u USER -p -o iris <./db/dummy_data.sql dummy_data.sql

    travel-agency:带有完整电子商务PHP和mysql旅行管理网站

    如何导入-> 在本地主机上创建一个名为tagency的数据库,然后导入上述sql文件然后将存储库克隆到您的htdocs文件夹,并在本地主机上使用此URL访问访问管理面板: 电子邮件: 密码:admin养一颗星星来支持我。...

    【搬运】苹果ios超级签名源码包java版带分发页面支持安卓合并网站源码

    苹果超级签名是什么我就不在赘述了,项目由java+vue开发 功能: ...2.支持修改分发页面轮播图,简介,安卓合并 ...然后在mysql新建一个ios_super_sign的数据库,并将sign/mode/下面的ios_super_sign.sql导入进去,会有四个表

    广告联盟源码

    广告联盟源码,免费版 系统环境 操作系统:Linux/Unix/NT;推荐使用Linux或Unix操作系统,版本不.../zyiis.sql 为数据库文件,在mysql数据库中先建立一数据库,再将zyiis.sql导入该库。 然后就没有然后了O(∩_∩)O~

    leetcode题库-JavaStudy:Java学习

    2、解决Ubuntu18设置mysql的sql_mode导致的数据库数据导入不到服务器的问题 1、Litemall商品模块,SPU和SKU是什么?秒杀超售可以使用Mybatis-Plus下的乐观锁避免;Redis使用命令行下的乐观锁;2、原生dubbo整合...

    中易广告联盟系统PHP

    /zyiis.sql 为数据库文件,在mysql数据库中先建立一数据库,再将zyiis.sql导入该库。 模版文件根据action值对应修改 如:?action=union 就是(加盟优势) 对应文件templates/index/default/union.php 提醒:a目录 ...

    中易广告联盟系统v3.3.zip

    /zyiis.sql 为数据库文件,在mysql数据库中先建立一数据库,再将zyiis.sql导入该库。 模版文件根据action值对应修改 如:?action=union 就是(加盟优势) 对应文件templates/index/default/union.php 提醒:a目录 ...

    中易广告联盟安装教程

    /zyiis.sql 为数据库文件,在mysql数据库中先建立一数据库,再将zyiis.sql导入该库。 模版文件根据action值对应修改 如:?action=union 就是(加盟优势) 对应文件templates/index/default/union.php 提醒:a目录 ...

    中易广告联盟3.2免子目录

    /zyiis.sql 为数据库文件,在mysql数据库中先建立一数据库,再将zyiis.sql导入该库。 模版文件根据action值对应修改 如:?action=union 就是(加盟优势) 对应文件templates/index/default/union.php 提醒:a目录 ...

    中易广告联盟程序3.3

    /zyiis.sql 为数据库文件,在mysql数据库中先建立一数据库,再将zyiis.sql导入该库。 模版文件根据action值对应修改 如:?action=union 就是(加盟优势) 对应文件templates/index/default/union.php 提醒:a目录 ...

    03开源NewSql数据库TiDB-Deep Dive into TiDB

    支持更多的 `SQL_MODE` 5.DDL 优化 `Add Index` 的执行速度,部分场景下速度大幅度提升 `Add Index` 操作变更为低优先级,降低对线上业务影响 `Admin Show DDL Jobs` 输出更详细的 DDL 任务状态信息 支持 `Admin...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。  自定义角色 Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户  创建角色 SQL> create role admin;  授权给...

Global site tag (gtag.js) - Google Analytics