我有一个java swing应用程序连接到MySQL数据库并完美地执行事务。还有一些为交易生成的数字。数据确实在大多数情况下都没有任何问题。但是有些情况下,在某些情况下,先前提交的数据会从数据库中完全消失,而且一个数字也会回滚。例如,如果我已经完成了一张发票编号从1到200的发票,那么第二天早上当我查看销售报表时,它会显示ID为1到100的交易。其余数据丢失了。但由于我已经打印了所有发票的发票副本,从1到200,我确信交易确实已经发生。 MySQL中有什么我需要注意的吗?升级到MySQL版本8会有帮助吗?我担心机器中会出现某种恶意软件,所以我甚至收紧了防病毒软件,但这并没有帮助。我也设置了一个非常强大的MySQL数据库密码。似乎没有任何东西可以帮助防止这种情况发生。
例如,如果我已经完成了一张发票编号从1到200的发票,那么第二天早上当我查看销售报表时,它会显示ID为1到100的交易。其余数据丢失了。但由于我已经打印了所有发票的发票副本,从1到200,我确信交易确实已经发生。
您所说的并不能证明交易已经发生。一种可能性是在交易期间打印发票;即在你犯下它之前。
如果不检查代码,我们无法消除这种可能性。并且可能存在许多其他可能性。
MySQL中有什么我需要注意的吗?
我知道MySQL中没有任何内容会导致已经提交的事务的自发回滚。
升级到MySQL版本8会有帮助吗?
它不太可能有所帮助。更重要的是,如果你不知道真正的原因,你肯定不会确切地知道它有任何不同。
这是一些可能的解释。可能还有其他人。
我会建议像: