0

我目前使用 InnoDB 事务来管理任何单个网页请求的效果。每笔交易一个请求。如果请求失败,这很好用,我可以忽略它。

作为 MySQL 管理的新手,我仍然担心我在 PHP 代码中写入的内容会对我的数据库造成不良影响。DELETE FROM 或 UPDATE 没有 where 语句或其他东西作为一个极端的例子。事务的想法是,当我不可避免地注意到后来发生的事情时,在提交了错误的事务后,我应该能够回滚错误。

但是,数据库被大量使用,因此当我提交错误事务和我注意到它并对其采取行动时,其他事务很可能会出现。但是我在交易中看到的所有文档,以及 AWS 恢复到时间点,只允许您“返回”到交易提交之前。

那么,我如何恢复或“前滚”在我的坏交易之后进入的交易?它们在 InnoDB 日志中,所以我是否应该能够再次应用后面的事务,只是跳过一个坏的?我的软件与外部信用卡处理器接口,因此不能选择丢失那些后来的交易。

我很难想象这是不可能的,但我找不到任何“前滚”的方法。这可能吗?您是否必须将其写入数据库结构本身,例如保留带有触发器的历史表并在回滚后使用历史记录进行更新?

使困惑。

4

0 回答 0