前段时间搞开发 把事情耽误了
现在有这个问题 a(id, url)
这个url是text类型
SQL Exception: Data truncation: Data too long for column 'url' at row 1
java.sql.BatchUpd
ateException: Data truncation: Data too long for column 'url' at row 1现在没有出现异常的数据。 
在猜测原因:
1 我测试 可以插入以色列 匈牙利文字
2 应该是不是长度与原因 ,无论如何http的长度不会高达65536的长度。到底什么与原因??? 

解决方案 »

  1.   

    估计是字符集问题引起的贴 show full fields from tb_name 结果看看吧
      

  2.   

     show full fields from tb_nameurl                     | text                | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |
      

  3.   

    字符集全部是utf8
    肯能是乱码字符?
      

  4.   

    repair table ----排除 表非常健康
    字符集 ----------排除 字符集全部是utf8  乱码字符--  (trace java code. )
      

  5.   

    现在我写了java代码模拟环境
    先把数据取出来放到内存 
    之后再写进到目的库 没有发现不能写进去的情况
      

  6.   

    艰难解决这个问题 耗时太长
    java代码原因 
      

  7.   

    将那个 字段 改为 utf-8这个问题请注意3点:
    1。创建数据库的时候:CREATE DATABASE `database`
    CHARACTER SET 'utf8 '
    COLLATE 'utf8_general_ci ';
    2.建表的时候 CREATE TABLE `database_user` (
    `ID` varchar(40) NOT NULL default ' ',
    `UserID` varchar(40) NOT NULL default ' ',
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      

  8.   

    如果是插入的字段真的太长了。可以将字段类型改为用LongText
    mysql text 长度 :
    BLOB 
    TEXT 
    一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。MEDIUMBLOB 
    MEDIUMTEXT 
    一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。LONGBLOB 
    LONGTEXT 
    一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符。
    http://fengshujuan.iteye.com/blog/456511