2012-03-28 64 views
1

我有一个存储过程来获取输入脚本和升级表。它还会写入更新历史记录表。我用交易把他们包起来了。用mysql中的事务执行脚本

START TRANSACTION; 
PREPARE action from @upgradeScript; 
EXECUTE action; 
INSERT INTO database_history (version, changes) 
VALUES (Version, comments); 
COMMIT; 

我设置@upgradeScript到:

"ALTER TABLE t ADD column test1 varchar(45) NOT NULL;" 

然而,当插入失败,它不会回退中@upgradeScript变化。

我想知道为什么,可以帮助任何人。非常感谢。

回答