在mysql更新的时候 有一个warning报错 :
mysql>  UPDATE TB_SYS_BRANCH SET VR_SYSBR_CODE="\$!\\''##" where ID_SYS_BRANCH=1;
Query OK, 1 row affected, 1 warning (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 1查看:
mysql> select  VR_SYSBR_CODE  from TB_SYS_BRANCH where ID_SYS_BRANCH=1;
+---------------+
| VR_SYSBR_CODE |
+---------------+
| $!\           |
+---------------+
1 row in set (0.00 sec)
也不是我想插入的内容请大家帮忙看下怎么回事如何查看这个语句的warning信息?
感谢

解决方案 »

  1.   

    在出现warning之后立刻执行show warnings;就可以看到提示信息。注意:warnings只记录上一次执行的提示,如果你在出现一个warning之后,再执行了一次正常的查询,如select 1/0; 得到一个warning,然后又执行了select now();这次没有告警,你再做show warnings也是看不到告警信息了。
      

  2.   

    mysql> show warnings;
    +---------+------+----------------------------------------------------+
    | Level   | Code | Message                                            |
    +---------+------+----------------------------------------------------+
    | Warning | 1265 | Data truncated for column 'VR_SYSBR_CODE' at row 1 |
    +---------+------+----------------------------------------------------+
    1 row in set (0.00 sec)
    请教高手 问什么我在更新字段的时候 为什么会被truncated 呢
    UPDATE TB_SYS_BRANCH SET VR_SYSBR_CODE="\$!\\''##" where ID_SYS_BRANCH=1;
    如何才能避免这种报错呢 
    感谢
      

  3.   

    show create table TB_SYS_BRANCH ;
    看看
      

  4.   

    SELECT "\$!\\''##" 看看结果,VR_SYSBR_CODE定义是什么
      

  5.   

    VR_SYSBR_CODE定义的是char (3)吧
      

  6.   

    你的'VR_SYSBR_CODE' 估计长度不足。
      

  7.   


    恩 谢谢大家 
    `VR_SYSBR_CODE` varchar(3) NOT NULL,
    的确是定义的长度太短了