如何将row_count()与transAction一起使用?

时间:2013-01-21 11:21:12

标签: mysql stored-procedures transactions rowcount

我在mysql中有一个存储过程,如下所示:

BEGIN
START TRANSACTION;  
    INSERT INTO tbl1 (v1,v2) VALUES (p1,p2);
    UPDATE tbl2 SET s1 = 1 WHERE s2 = s3;
    SELECT ROW_COUNT();
COMMIT
END

在此查询中,即使事务未提交,row_count也将为1。 实际上我的问题是如果使用row_count,如果发生回滚,它会返回0?

1 个答案:

答案 0 :(得分:2)

我最近遇到了类似的问题,但我设法通过选择事务块内部的行数然后在提交后返回它来解决它:

BEGIN
START TRANSACTION;  
    INSERT INTO tbl1 (v1,v2) VALUES (p1,p2);
    UPDATE tbl2 SET s1 = 1 WHERE s2 = s3;
    SET @rowCount = (SELECT ROW_COUNT());
COMMIT
SELECT @rowCount;
END

我不知道这是否是解决问题的最佳方式,但它似乎对我有用: - )