本帖最后由 12free 于 2013-02-01 15:10:44 编辑

解决方案 »

  1.   

    打开MYSQL一般查询日志看一下有什么可以分析的记录。
      

  2.   


    call P_InsertDate('2013-02-01');
    表 t1 没有数据。
      

  3.   

    跟踪日志发现,产生了rollback的情况,重启mysql服务又没有问题了,而且在存储过程中,我也没有加入rollback机制。这是因为我的mysql服务设置问题导致自动rollback吗?     3 Init DB mydata
        3 Query CALL `mydata`.`P_GetItemData`(2, '', '')
        3 Query ROLLBACK
    130202 21:55:42     3 Init DB mydata
        3 Query CALL `mydata`.`P_GetLoadForCheck`(1, 1, 0)
        3 Query ROLLBACK
    130202 21:55:44     3 Init DB mydata
        3 Query CALL `mydata`.`P_GetLoadForCheck`(1, 0, 0)
        3 Query ROLLBACK
    130202 21:56:04     3 Init DB mydata
        3 Query CALL `mydata`.`P_GetItemData`(2, '', '')
        3 Query ROLLBACK
    130202 21:56:12     3 Init DB mydata
        3 Query CALL `mydata`.`P_GetLoadForCheck`(1, 0, 0)
        3 Query ROLLBACK
      

  4.   

    你所提供的日志中根本找不到 P_InsertDate
      

  5.   

    对不起,P_InsertDate 只是我举的例子,日志只是其中一部分,发现所有的sp都给我rollback,所以很困惑。我发现只要我在存储过程中加入autocommit=0,commit;就不会出现这种情况。版主你认为是什么情况?