我用程序往MySql的表里写数据时提示:SQL State:01004
相关信息是:Data truncation: Data too long for column 'ITEM_P9' at row 1.  但是我把ITEM_P9这个字段的长度设成varchar(100),并且我往ITEM_P9字段插入的数据长度都不超过50个字符,但是我在mysql-front里,执行相同的sql语句是可以的,也没报错。真郁闷啊:-(
    希望各位朋友帮忙分析一下原因,谢谢!

解决方案 »

  1.   

    依我个人经验,出现这个错误通常不是字符超长,而是字符编码不对应
    比如jdbc使用utf8连接,但表中列的字符编码采用LATIN1,使用统一的编码就可以解决这个问题了
      

  2.   

    谢谢defty() !
    不过还是不行,我都是GB2312编码的。
    郁闷了!
      

  3.   

    终于查出罪魁祸首了,呵呵!        "上海—广州",不知道中间哪个一杠是个什么符号,无论字段设得多大(varchar,char)
        只要插入的值中有"—",如果用程序来插入,肯定报错"Data truncation: Data too long
        for column 'ITEM_P6' at row 1"。  
            但是Mysql-front或其他数据库工具插入就没问题。
          
            不知道"—"什么来头!!