数据插入报错Incorrect integer value: '' for column

鄙人不才,在操作数据库存储的时候碰见这样的问题。
执行sql语句批量插入数据的时候报错

?

Incorrect integer value: ‘‘ for column ‘zhuticengshu‘ at row 1

我的数据库表设计十分的简单:
说白了,也就是记录下,以后避免这样的错误发生
其中id是自增id,其余的字段都是非主键,执行的时候一直报错

Incorrect integer value: ‘‘ for column ‘zhuticengshu‘ at row 1

问题测试

首先将后台打印出来的SQL复制出来
通过navicat进行批量的数据插入时,插入数据成功,无异常。

?

?

插入数据

?

问题解决

最后google了一下,发现mysql版本到5以上的都会遇到这样的问题,插入空字符要使用NULL

 <insert id="insertBatchExt">
    INSERT INTO ${tableName}(
    <foreach collection="keys" item="item" index="index" separator=",">
      ${item.fieldName}
    </foreach>
    )
    VALUES
    <foreach collection="exts" item="ext" index="index" separator=",">
      (
      <foreach collection="ext" item="extitem" index="index" separator=",">
        <choose>
          <when test="extitem.value==null">
            NULL
          </when>
          <otherwise>
            ‘${extitem.value}‘
          </otherwise>
        </choose>
      </foreach>
      )
    </foreach>
  </insert>

?

网上查资料发现5以上的版本如果是空值应该要写NULL
这种问题一般mysql 5.x上出现。

使用Select version();查看,

我用的是mysql5.0.37,而创建备份的MySQL数据库版本是5.6

官方解释说:得知新版本mysql对空值插入有"bug",
要在安装mysql的时候去除默认勾选的enable strict SQL mode
那么如果我们安装好了mysql怎么办了,解决办法是更改mysql中的配置 my.ini

my.ini中查找sql-mode,  

默认为sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",  

将其修改为sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",重启mysql后即可 

记录下来与大家共勉,共通学习。

数据插入报错Incorrect integer value: '' for column

原文地址:https://www.cnblogs.com/zhaixingzhu/p/12569179.html

时间: 2024-10-23 10:03:31

数据插入报错Incorrect integer value: '' for column的相关文章

mysql 插入中文字段报错 &quot;Incorrect string value: &#39;\\xE6\\xB5\\x8B\\xE8\\xAF\\x95...&#39; for column &#39;title&#39; at row 1&quot;

1. 查看一个 database 或一个 table 的编码show create database mytestdb;show create table testapp_article; mysql> show create table testapp_article;+-----------------+-----------------------------------------------------------------------------------------------

【原创】通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: &#39;\xF0...

这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错问题,本篇足够了. 一.定位错误 定位错误绝对是至关重要的一环.我建议遇到问题耐心分析一下比较好,毕竟“不是所有的牛奶都叫特仑苏”. 引起同一个问题的可能有很多,别人的解决方案也许并不适合自己. 那先看看问题出现在哪了,报错如下: 发现的确是编码错误, 16进制的错误提示(\xF0\x9F\x94\xA5\x

MySql 插入数据库报错 Incorrect string value: &#39;\xF0\xA0\x86\xA2&#39;

今天从nginx日志分析搜索关键字,然后把关键字插入到Mysql数据库里,出现如下错误 SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\xA0\x86\xA2' for column 'XXXX' at row 38; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\xA0\x86\xA2' for column

通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: &#39;\xF0...

原文:[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 'incorrect string value: '\xF0... 这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错问题,本篇足够了. 一.定位错误 定位错误绝对是至关重要的一环.我建议遇到问题耐心分析一下比较好,毕竟“不是所有的牛奶都叫特仑苏”. 引起同一个问

logstash 数据插入mongodb,去掉附加信息,若删除@timestamp,插入数据会报错

input { file { path => ['/gwlog/data/**/*.json'] discover_interval => 1 ignore_older => 5 start_position => "beginning" close_older => 6 max_open_files => 200000 codec => json } } filter { mutate { remove_field => ["

数据库插入四字节字符报错Incorrect string value: ‘\xF0\xA3\x8E\

数据库插入四字节字符报错Incorrect string value: '\xF0\xA3\x8E\xB4\xE9\xAB.. 改变字符编码utf8mb4貌似很二 直接找到四字节那个字符改成正常的字符貌似有点简单粗暴(俺就是这么干的!O(∩_∩)O哈哈~). 大家怎么看?

mysql插入报错:java.sql.SQLException: Incorrect string value: &#39;\xE6\x9D\xAD\xE5\xB7\x9E...&#39; for column &#39;address&#39; at row 1

界面报错: 日志报错: java.sql.SQLException: Incorrect string value: '\xE6\x9D\xAD\xE5\xB7\x9E...' for column 'address' at row 1 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.17.jar:8.0.17] at com.mys

Mysql 插入时间时报错Incorrect datetime value: &#39;&#39; for column &#39;createtime&#39;

在网上找了很多方法总结如下: 1.MySQL驱动版本的问题.这种一般是在mYSQL版本更新了之后才会报错.解决方法在jdbc里添加"&useOldAliasMetadataBehavior=true" 2.可能是datetime的格式问题. datetime 以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值.支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'TIMESTAMP值不能早于1970或晚于20

MySQL 中文insert报错Incorrect string value: &#39;\xCC\xEC\xB2\xC5&#39;

    序言:中文录入失败,报错:Incorrect string value: '\xCC\xEC\xB2\xC5',如下所示:mysql> set names utf8;Query OK, 0 rows affected (0.00 sec) mysql> insert into t select 2 as a ,'天才' as b;ERROR 1366 (HY000): Incorrect string value: '\xCC\xEC\xB2\xC5' for column 'b' a