2

我想在我的表中上传一些数据,它是 innoDB,但每次我想清理存储在表中的数据时,我都会运行一个 truncate 命令来执行此操作。但是,如果我的插入查询为假,那么我希望该表能够回滚。下面的代码对我不起作用。我错过了什么吗?有人帮我解决这个问题吗?

function begin() {
    mysql_query("BEGIN");
}

function commit() {
    mysql_query("COMMIT");
}

function rollback() {
    mysql_query("ROLLBACK");
}

begin();
mysql_query("TRUNCATE TABLE table_name");

if(mysql_query("Any bad insert query"))
{
    commit();
}
else
{
    rollback();
}
4

1 回答 1

3

TRUNCATE TABLE导致隐式提交(即不能回滚)。改为使用DELETE

于 2013-08-29T07:18:10.420 回答