当SQL DELETE查询超时时,数据会发生什么?

如果我要运行DELETE FROM some_table,那就是超时,那么数据会发生什么?

我看待它的方式,可能会发生两件事之一:

>数据将被删除,直到查询超时,因此如果数据库中有1,000,000个条目,并且前500,000个条目已被删除,则它们将保持删除状态.数据库现在包含的数量是运行查询之前的一半.
>数据被删除,查询超时,数据被回滚(我会从DELETE的日志中猜出来?).数据库现在包含与其开始的完全相同的数据.

两者看似合乎逻辑一个人会100%的时间发生吗?或者这取决于我不知道的一些设置?请注意,我不是在询问DELETE的可行性,我意识到TRUNCATE可能是合适的.这纯粹是出于对超时如何使用DELETE的好奇心.

最佳答案 Oracle,SQL Server,
MySQL,PostgreSQL数据库遵循ACID属性.因此,每当delete语句显示超时时,它必须回滚.

您可以从
Link获得ACID的概述.

点赞