阅读时更新表格

时间:2012-02-23 18:25:11

标签: sql netezza

我有一个数据库表,在一列中有一个Y / N标志。我想读取标志为“N”的所有记录,并在处理完记录后,在该记录中将标志设置为“Y”。使用两个单独的连接同时执行此操作是否正确且合理?或者我应该先阅读整个表格,并在完成阅读后才更新?对此有什么正确的解决方法?

所涉及的数据库是Netezza,以防万一。

2 个答案:

答案 0 :(得分:1)

主要取决于您的设计和需求。

国旗有多重要?如果在处理完所有标志之前出现问题会怎么样......等等。

为什么你需要两个连接是我的理解,通常你有一个连接你保持打开。我不知道Netezza的块,但也可以让一些系统同时进行选择和更新。

你可以这样做:

  1. 加载一堆,处理它们然后更新所有标志。 (最快,一次失败=全部失败)
  2. 加载一堆,处理一个,更新一个标志,然后处理...(非常快,一个失败不会全部命中)
  3. 逐一获取并更新它们。 (将是最慢但最安全的)

答案 1 :(得分:1)

您应先阅读然后更新。不是异步的。如果“选择”部分需要很长时间,您应该考虑批量处理。您可以使用单独的连接,但应确信您已完成阅读。