三条插入语句,如果第三条出错,前两条会自动回滚吗? 我看见网上好多人写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
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
???
INSERT INTO ... VALUES(...);
INSERT INTO ... VALUES(...);
INSERT INTO ... VALUES(...);
COMMIT;另外,批量添加数据,建议用下面的写法INSERT INTO `table` (`id`, `name`)
VALUES ('0', 'a'), ('1', 'b'), ('2', 'c')...;
可以查看执行的错误信息。
INSERT INTO ... VALUES(...);
show errors;
INSERT INTO ... VALUES(...);
show errors;
INSERT INTO ... VALUES(...);
show errors;
COMMIT;