我目前使用InnoDB事务来管理任何单个网页请求的效果。每笔交易一个请求。如果请求失败,这很有效。我可以忽略它。
作为MySQL管理的相对新手,我仍然担心我写入PHP代码会对我的数据库造成不利影响。 DELETE FROM或UPDATE没有where语句或者某种极端的例子。交易的想法是,当我不可避免地注意到后来发生的事情时,在提交了错误的交易之后,我应该能够回滚这个错误。
但是,数据库被大量使用,因此当我提交错误事务时以及当我注意到它并对其采取行动时,很可能会介入其他事务。但是我在交易中看到的所有文档以及AWS恢复到时间点,只允许您在提交事务之前“返回”。
那么,我如何恢复或“前滚”我糟糕的交易?它们在InnoDB日志中,所以我是否应该再次应用后来的事务,只是跳过一个坏事?我的软件与外部信用卡处理器接口,因此只是丢失那些以后的交易不是一种选择。
我很难想象它是不可能的,但我找不到任何“前滚”的方法。这可能吗?是否必须在数据库结构本身中写入内容,例如保留带触发器的历史记录表并在回滚后使用历史记录进行更新?
混淆。