gpt4 book ai didi

sql - 一次插入或更新多个表的最佳做法是什么

转载 作者:行者123 更新时间:2023-12-05 01:48:43 26 4
gpt4 key购买 nike

如果我需要通过一个“操作”更新或插入多个表,例如一个保存信息的调用,其中有多个包含“信息”的表。

为了论证,假设我们有以下表格:

姓名地址车工作

每次调用保存信息时,这些表中的每一个都会被插入。

哪个更好:

  1. 获取必须写入 Name 表的数据。调用 InsertOnSubmit 并调用 SubmitChanges
  2. 获取必须写入地址表的数据。调用 InsertOnSubmit 并调用 SubmitChanges
  3. 获取必须写入 Car 表的数据。调用 InsertOnSubmit 并调用 SubmitChanges
  4. 获取必须写入作业表的数据。调用 InsertOnSubmit 并调用 SubmitChanges

  1. 获取必须写入Name表的数据。
  2. 获取必须写入地址表的数据。
  3. 获取必须写入 Car 表的数据。
  4. 获取必须写入 Job 表的数据。
  5. 调用 InsertOnSubmit,然后调用 SubmitChanges。

  1. 获取必须写入 Name 表的数据。调用 InsertOnSubmit
  2. 获取必须写入地址表的数据。调用 InsertOnSubmit
  3. 获取必须写入 Car 表的数据。调用 InsertOnSubmit
  4. 获取必须写入作业表的数据。调用 InsertOnSubmit
  5. 调用 SubmitChanges

我已经实现了给定的第一个选项,但我确信这不是最好的方法。我不知道我的网络连接是否有问题或其他什么问题,但有时一些表被写入而其他表没有,这让我确信我没有以最好的方式做到这一点。

在一些与此问题类似的帖子中,有与 View 和其他选项有关的评论。我没有这方面的经验,所以我需要一些指导,以了解执行此操作的最佳方法以及我应该关注的方向。

最佳答案

为第一个表准备数据并为表执行InsertOnSubmit

然后第二个,第三个,第四个表也是一样的。

然后执行 SubmitChanges。

在数据库中,所有行都将被插入(或者更新或删除,如果你包括那些类型的操作)。如果在数据库更新期间出现问题,所有修改都将被删除(回滚)。所以数据的完整性是安全的!

您程序中变量中的数据不会反射(reflect)数据库,如果发生回滚,您将需要再次访问数据。

第二个变体并不总是很好,因为它只会在回滚中包含最后一个表。如果表 1 的插入顺利,没有 2 失败,nr 3 和 4 顺利,那么您将不会注意到第二次失败。

关于sql - 一次插入或更新多个表的最佳做法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6762930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com