首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单事务与多事务

单事务与多事务
EN

Stack Overflow用户
提问于 2012-07-12 20:14:08
回答 4查看 4K关注 0票数 3

我需要将数据插入到同一数据库中的两个单独的表中。我目前对每个插入使用单独的查询/事务,但我最近了解到我可以将两个插入合并到一个事务中。

将它们合并到一个事务中,而不是将它们作为单独的事务保留,有什么区别?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-12 20:26:04

如果数据是相关的,这意味着第二个sql存储的数据与第一个查询存储的数据以某种方式链接在一起,或者反之亦然,那么您应该考虑创建一个transaction。通过这种方式,如果其中一个查询遇到问题,您可以使用rollback。您可以在try-catch语句中实现这一点。如果查询彼此完全不相关,则可以使用两个单独的SQL语句。

但是,我认为,由于两个表的数据是相同的,所以最好进行事务处理。因此,如果您将来必须进行连接、删除等操作,那么您仍然拥有一个一致的数据库。

票数 4
EN

Stack Overflow用户

发布于 2012-07-12 20:21:51

事务为您提供了回滚sql语句的工具。例如,您有两个表table1和table2,您只想在table2中正确插入数据时才在table1中插入数据,如果在table1中插入数据时出现错误,则不会在table2中插入数据,在这种情况下,您将使用transaction。

事务的四个基本功能:

  1. Atomicity:当事务中涉及两个或多个信息时,或者所有的state.
  2. Isolation:都被提交,或者在事务结束时没有一个是commited.
  3. Consistency:的,要么存在新的有效数据形式,要么在事务期间(在提交或回滚之前)将数据返回到其原始state.
  4. Isolation:。事务提交后,数据必须保持隔离状态,其他transactions.
  5. Durability:无法访问。即使服务器出现故障或重新启动,数据的最终状态也仍然可用。
票数 10
EN

Stack Overflow用户

发布于 2012-07-12 20:20:21

一件事与另一件事无关。

将它们放在同一事务中的意义在于两者都发生或都不发生。

如果您的第一次插入成功,第二次插入失败,那么您需要问的问题是什么,然后回答。

就我个人而言,由于我在某些操作中同时执行两个插入操作,因此即使第二个事务失败的后果在其他地方处理,单个事务也是有意义的。

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

https://stackoverflow.com/questions/11451612

复制
相关文章

相似问题

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