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
    就可以正常执行了的

  • 相关阅读:
    程序运行bug查看
    c# webbrowser 的html调用js出错
    c# dll使用注意
    支持ie的时间控件 html
    sql 条件插入
    软件自动更新原理
    c# 数组不能直接=,需要clone
    打包成exe程序
    逆袭大学
    Heritage from father
  • 原文地址:https://www.cnblogs.com/jwentest/p/8084814.html
Copyright © 2011-2022 走看看