-2

我是 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
4

1 回答 1

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

  2. 是的,在某些情况下它是可能的。请参考回滚和提交

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

  4. 是的,当前事务提交后,所有保存点都将被删除。参考这个 保存点

于 2013-04-16T11:06:25.780 回答