1、mysql数据库从5.0升级到5.5导致一个表不能写入  同一个语句用5.0就可以写进去Client Library error:
                Error Code: 1264;
        Out of range value for column 'IP' at row 1语句如下
insert into tbl(DevID, EnterConf, QuitConf, ConfName, ConfID, IP, DevType) VALUES ('11000000000000000029000820060500', 1326174285, 0, 'tpkt', '', 2886787684, 2)即便我把IP 改成0也写不进去表结构如下SerialID为 主索引      unique字段            类型       空    默认值
SerialID    int(11)        no  <auto_increment>
DevID       varchar(37}    no  
EnterConf   int(11)        no
QuitConf    int(11)        yes
ConfName    varchar(129)   no
ConfID      varchar(33)    no  
IP          int(11)        no
DevType     int(2)         no另外这个IP int(11) 我拼接sql语句时应该用sprintf( %u ....)   还是sprintf( %d......),我觉得应该是%u 2、数据库在多用户操作时老是会卡死,请问我如何判断connection出现错误呢,出现错误我重新连接会不会解决卡死的问题

解决方案 »

  1.   

    1。 2886787684这个已经大于了有符号int
    2. 是否是应为表锁造成的,show create table tbname贴出来看看表引擎 ,索引
      

  2.   


    你的这个 2886787684, 显然已经超出范围。估计是你创建表的时候对INT数据类型没有添加 UNSIGNED说明符。 检查你两个版本上的create table 语句。 你可以贴出你的 show create table  tbl; 分别从不同的版本。
      

  3.   

    谢谢上面2位
    如何动态connection出现错误呢,如果出现错误是否能重连解决问题