同时选择和更新?

时间:2017-12-14 06:19:31

标签: sql multithreading ms-access

我是初学者,学习如何在Python中进行多线程处理。需要SQL查询(我现在还没准备好深入研究复杂的SQL内容)。我正在使用MS Access作为数据库。

表格中有三个字段:ComputerNameisPinginProgress。需要SQL查询来选择当前不是ComputerName的{​​{1}}中的一个,并将其标记为inProgress,并将同时标记为

inProgress

1 个答案:

答案 0 :(得分:0)

似乎可以在TOP子句中使用Access的子查询中使用WHERE。如果是这样,那么您可以尝试使用以下UPDATE语句:

UPDATE Table1
SET inProgress = True
WHERE ComputerName = (SELECT TOP 1 ComputerName FROM Table1 WHERE inProgress = False)

请注意,在没有TOP 1子句的情况下使用ORDER BY没有多大意义,因为您没有提供与相关的记录应该选择的逻辑第一。您可能希望将ORDER BY添加到上面的子查询中。另请注意,正如我在评论中提到的那样,无法同时更新和选择。如果您确实需要原始SELECT中的字段,那么您需要一个单独的查询/语句。一个选项可能是使用时间戳标记更新,然后在事后选择最近更新的记录。