三条插入语句,如果第三条出错,前两条会自动回滚吗?   我看见网上好多人写rollback,但是我就用了网友的语句,不知道有没有回滚的作用 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK;SET errno = 1; END;
begin 
declare a int;
DECLARE errno TINYINT DEFAULT '0';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK;SET errno = 1; END;
START TRANSACTION;
               select count(tid) INTO a from xy_order1 where tid=tid1;
               if(a=0) then
insert  ****;
insert  ****;
insert  ****;
               else
.....
               END IF;
               SELECT errno;
COMMIT;
end

解决方案 »

  1.   

    我现在有一条数据进行存储过程操作,但是就是返回errno=1了 也就是错误了,我现在想要知道他回滚了没有,还有要知道怎么捕捉这个错误,具体的出错信息..感谢各位大哥大姐了.
      

  2.   

    CSDN怎么就越来越没人了  还是我发错版块了
    ???
      

  3.   

    直接这样写还简单明了些START TRANSACTION;
    INSERT INTO ... VALUES(...);
    INSERT INTO ... VALUES(...);
    INSERT INTO ... VALUES(...);
    COMMIT;另外,批量添加数据,建议用下面的写法INSERT INTO `table` (`id`, `name`) 
    VALUES ('0', 'a'), ('1', 'b'), ('2', 'c')...;
      

  4.   

    你在每条insert  ****;语句的后面加上print 把每次插入的自增id拿出来,打印出来,然后出错了,你在对比你数据库的数据明了了
      

  5.   

    在程序 中加一条show errors;
    可以查看执行的错误信息。
      

  6.   

    START TRANSACTION;
    INSERT INTO ... VALUES(...);
    show errors;
    INSERT INTO ... VALUES(...);
    show errors;
    INSERT INTO ... VALUES(...);
    show errors;
    COMMIT;