如何处理Mysql数据库中的事务处理。当我的数据库被中断?

时间:2010-05-12 13:36:05

标签: mysql database

我在我的存储过程中执行了10个查询。

如果在执行5 Th查询后,我的数据库被中断并且它的执行结束了。

我在database.o中更新了我的前5个查询。因此我必须回滚所有5个查询的执行。

如何解决这类问题?

2 个答案:

答案 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