关于MySQL事务的一些问题

时间:2013-04-16 10:54:57

标签: mysql transactions

我是MySQL新手,想了解更多信息。我正在阅读myseql doc,目前很难理解。


你能解释一下,这些是真还是假?

1 - 在MySQL中,无法撤消更新或删除已经发生的查询。例如,在过去24小时内有1900个查询。没有人可以撤消。

2 - 只能在MySQL中回滚当前事务。

3 - 事务结束后,保存点将被销毁。换句话说,今天上午10点无法创建保存点。

4 - 保存点和回滚仅在当前事务中有效,并且在提交完成后它们将死亡。

问题:

1 - 如果只能回滚当前交易,那么回滚或交易的重点是什么?

如果交易错误,为什么要运行呢?


编辑:

我创建了一个这样的保存点:

start transaction;
savepoint behnam;
commit;

然后运行了一些更新和删除查询。然后尝试回滚到该保存点:

rollback to savepoint behnam

我得到了:

#1305 - SAVEPOINT behnam does not exist

1 个答案:

答案 0 :(得分:0)

  1. 如果您在插入数据时存储时间戳,则可以触发查询以在过去24小时内删除。但是你无法撤消它们。

  2. 是的,在某些情况下是可能的。请参考rollback and commit

  3. 我认为保存点只有在被覆盖时才会被删除,所以如果你用与前一个保存点相同的保存点进行事务处理,它将覆盖最后一个保存点,因此你无法返回

  4. 是在提交当前事务后删除所有保存点。参考这个 savepoints