我正在使用这样的结构:
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!');
}
但出于某种原因"删除"交易不会滚动。 而且桌子一直空着。
我错过了什么?
答案 0 :(得分:0)
MySQL服务器(版本3.23-max和所有版本4.0及更高版本) 支持与InnoDB和BDB的交易
请将表格引擎更改为innoDB
以支持交易
以下是如何更改引擎
ALTER TABLE table_name ENGINE = InnoDB;