mysql回滚不起作用

时间:2014-10-30 11:55:16

标签: php mysql

我正在使用这样的结构:

mysql_query('BEGIN') or die('BEGIN transaction failed!');
$query = "DELETE FROM transaction";

try {
    $result = mysql_query($query);

    if (!$result) {
        throw new Exception('Db error', 1);
    }

    $query = "  INS ERT INTO transaction
                SELECT ....."; // just buggy request
    $result = mysql_query($query);

    if (!$result) {
        throw new Exception('Db error', 1);
    }

    mysql_query('COMMIT') or die('COMMIT transaction failed!');
} catch (Exception $e) {
    mysql_query('ROLLBACK') or die('ROLLBACK transaction failed!');

}

但出于某种原因"删除"交易不会滚动。 而且桌子一直空着。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

  

MySQL服务器(版本3.23-max和所有版本4.0及更高版本)   支持与InnoDB和BDB的交易

请将表格引擎更改为innoDB以支持交易

以下是如何更改引擎

ALTER TABLE table_name ENGINE = InnoDB;