首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当SQL DELETE查询超时时,数据会发生什么情况?

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

Stack Overflow用户
提问于 2016-08-18 17:21:43
回答 1查看 265关注 0票数 4

如果我要运行一个DELETE FROM some_table,并且需要超时,那么数据会发生什么变化?

在我看来,有两件事可能会发生:

  • 数据会被删除,直到查询超时为止,因此,如果数据库中有1,000,000条条目,而前500,000条被删除,则它们将保持删除。现在,数据库包含的数量是运行查询前的一半。
  • 数据被删除,查询超时,数据回滚(我猜是从DELETE的日志中猜出来的?)。数据库现在包含与其启动时完全相同的数据。

两者都是合乎逻辑的。一次会发生100%吗?或者这取决于一些我不知道的设置?请注意,我并不是在问DELETE的可行性,我意识到TRUNCATE可能是合适的。这纯粹是出于对DELETE超时功能的好奇。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-24 08:56:46

Oracle、Server、MySQL、PostgreSQL数据库遵循ACID属性。因此,每当delete语句显示超时时,就必须回滚。您可以从这个链接中获得ACID的概述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39024081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档