delimiter $
create procedure sp_test()
begin
start transaction;
insert into t1 ...
insert into t2 ...
insert into t3 ...
insert into t4 ...
commit;
end
$
delimiter ;

解决方案 »

  1.   

    四张表的存储引擎是什么? MYISAM不支持事务,必须为innodb.
      

  2.   

    是innodb没错,  问题我已经解决了 ,
     DECLARE txn_error INTEGER DEFAULT 0;  
     DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN  
            SET txn_error=1;     
     END;
    #  这里依次放入四条DELETE语句   #IF txn_error=1 THEN ROLLBACK; ELSE COMMIT; END IF;我把存储过程体改为这样就哦了 ....
      

  3.   

    start transaction 
    #####
    #####
    commit
    如果中间SQL出现问题,他不会自动回滚 , 必须手动rollback ,
    所以就用到了 以上那些代码 .    
    谢谢大家帮忙 !