我在我的存储过程中执行了10个查询。
如果在执行5 Th查询后,我的数据库被中断并且它的执行结束了。
我在database.o中更新了我的前5个查询。因此我必须回滚所有5个查询的执行。
如何解决这类问题?
答案 0 :(得分:2)
默认的MySQL表类型是MyISAM,它不支持事务。值得庆幸的是,还有另一种表类型InnoDB,它支持事务。转换表类型很简单:
http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.html
在进行查询时,请执行以下操作:
START TRANSACTION
// do whatever queries you want to
// if there are no errors
COMMIT
// if there are errors
ROLLBACK
回滚后,您的数据库将返回到您调用START TRANSACTION时的状态。本教程应该有所帮助:
http://www.devshed.com/c/a/MySQL/Using-Transactions-In-MySQL-Part-1/
注意:您不能对InnoDB表使用FULLTEXT查询。
答案 1 :(得分:1)
使用InnoDB交易。 START TRANSACTION ... COMMIT。请参阅doc。