MySQL在WebService调用和WorkBench调用上的不同结果

时间:2015-07-17 08:44:11

标签: mysql workbench

我制作了一个存储过程。

当我使用工作台调用进行测试时,它运行良好。但如果我打电话给那个 在webservice调用中,我得到了1217的结果。 (在程序中定义)

myTable由3列(user_no,index,count)组成 这个程序用于减去多行的计数。

DECLARE _affected_count INT DEFAULT 0;

IF ( o_ouput1 < i_input1 ) THEN
    SET o_result = 1211;
    LEAVE proc_body;
ELSEIF ( i_input1 > 0 ) THEN
    SET _affected_count = _affected_count + 1;
END IF;

IF ( o_ouput2 < i_input2 ) THEN
    SET o_result = 1212;
    LEAVE proc_body;
ELSEIF ( i_input2 > 0 ) THEN
    SET _affected_count = _affected_count + 1;
END IF;

//对于input3~input6

相同
UPDATE myTable
    SET count = CASE WHEN index = 1 AND i_input1 > 0 AND count >= i_input1 THEN count - i_input1
                     WHEN index = 2 AND i_input2 > 0 AND count >= i_input2 THEN count - i_input2
                     WHEN index = 3 AND i_input3 > 0 AND count >= i_input3 THEN count - i_input3 
                     WHEN index = 4 AND i_input4 > 0 AND count >= i_input4 THEN count - i_input4 
                     WHEN index = 5 AND i_input5 > 0 AND count >= i_input5 THEN count - i_input5
                     WHEN index = 6 AND i_input6 > 0 AND count >= i_input6 THEN count - i_input6
                     ELSE count END
    WHERE user_no = i_user_no AND index IN ( 1, 2, 3, 4, 5, 6 );
IF ( ROW_COUNT() <> _affected_count ) THEN 
    SET o_result = 1217;
    LEAVE proc_body;
END IF;

问题是..如果我在工作台中调用此过程,则效果很好。

当我用workbench和webmethod调用它时,我无法理解为什么它会有所不同。

有没有人可以解释这个?

1 个答案:

答案 0 :(得分:0)

我找到了答案

在Workbench中使用受影响的行选项,但不使用默认的webservice。

http://dev.mysql.com/doc/refman/5.5/en//information-functions.html#function_row-count