这是mysql的一般问题。假设我们已经在脚本中启动了一个事务(脚本可以是python、php、nodejs等任何语言),并且由于数据中存在一些验证问题,我们需要停止脚本。我们已经停止了脚本,没有回滚事务。在这种情况下对mysql有什么影响?
jqjz2hbq1#
在没有交易的情况下,实际上有两种结果。如果数据库操作被中断,好的情况是a)事务刚刚开始,没有执行dml,或者b)事务dml已经完成。在这种情况下,您的基础数据不会被破坏,但是您可能不知道是否执行了事务。当事务在某个dml中间被切断时,糟糕的情况就会发生。在这种情况下,表中可能有不一致的数据。实际上,这里唯一安全的方法是使用事务或只执行原子sql语句(但是,它会自动在自己的事务中运行)。
1条答案
按热度按时间jqjz2hbq1#
在没有交易的情况下,实际上有两种结果。如果数据库操作被中断,好的情况是a)事务刚刚开始,没有执行dml,或者b)事务dml已经完成。在这种情况下,您的基础数据不会被破坏,但是您可能不知道是否执行了事务。当事务在某个dml中间被切断时,糟糕的情况就会发生。在这种情况下,表中可能有不一致的数据。
实际上,这里唯一安全的方法是使用事务或只执行原子sql语句(但是,它会自动在自己的事务中运行)。