刚接触mysql,对它的事物处理不熟悉。哪位大侠帮忙。存储过程如下:
-- --------------------------------------------------------------------------------
-- Routine DDL
-- --------------------------------------------------------------------------------
DELIMITER //CREATE DEFINER=`root`@`%` PROCEDURE `new_routine`()
BEGIN
DECLARE EXIT HANDLER FOR SQLException ROLLBACK;
start transaction;
insert into new_table(idnew_table,name_1)values(1111,'1111111');
insert into new_table(idnew_table,name_11)values(2222,'1111111');
rollback;
END//问题:
insert into new_table(idnew_table,name_11)values(2222,'1111111');是执行失败的。
insert into new_table(idnew_table,name_1)values(1111,'1111111');是执行成功的。
rollback以后,为什么执行成功的漫回滚掉?

解决方案 »

  1.   

    这个要看你用什么引擎了。
    在MYSQL中。 INNODB和NDB对事务处理的方式是不一样的。
      

  2.   

    1、你Table 是那个引擎
    2、你讲的执行失败和成功 是否第一条能成功插入,第二条不能成功插入呢?
      

  3.   

    我在本机上,已经找到原因了。表是MyISAM引擎。但是我还有一个问题,数据库服务器怎么没有InnoDB引擎呢?服务器是linux系统,我机器是Windows。