zoukankan      html  css  js  c++  java
  • mysql5.7 column cannot be null

    背景

    独立测试环境安装了数据库,但安装的版本是mysql 5.7的版本,而研发用的是mysql5.6的版本,在执行某个数据库操作的提示,提示column “xxxx”cannot be null

    问题解决

    最快速的方法就是直接询问研发,告知是DB问题,因为mysql从哪个版本开始默认的时间这块有改动,需要修改配置;
    MySQL升级后,在执行sql语句
    insert INTO `表名` ( ) VALUES ( );
    时出现错误:
    #1264 - Out of range value for column ‘’ at row 1
    #1048 - Column 'id' cannot be null
    原因:新版本的MySQL对字段的严格检查。(使用了auto_increment )

    解决方法:
    修改my.ini,将
    sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
    改为
    sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”。
    重新启动MySQL。

    Linux 下是改 /etc/my.cnf ,可能没有sql-mode,
    可在[mysqld] 下加 sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”

    用 mysql> SELECT @@sql_mode;查询当前模式
    但我在修改这个完后还是无法解决,后来又排查到时另外一个字段的问题-- explicit_defaults_for_timestamp

    [mysqld]
    explicit_defaults_for_timestamp=false
    就可以正常执行了的

  • 相关阅读:
    web测试学习大纲
    Python语言编程基础
    python文件IO
    Python 正则表达式
    python官网导航翻译
    python常用库
    python连接数据库
    sublime与python交互
    selenium连接浏览器方式
    sublime中运行python时编码格式问题
  • 原文地址:https://www.cnblogs.com/jwentest/p/8084814.html
Copyright © 2011-2022 走看看