ВЫБИРАЕТ ли происходит все сразу или постепенно - PullRequest
4 голосов
/ 28 мая 2010

У меня есть процесс, который находит список файлов для удаления, используя SELECT where delete = 'Y'.

Я запустил этот процесс на днях, но это занимает некоторое время, потому что он на самом деле тоже удаляет файлы.

И во время его долгой работы я использовал приложение и удалил еще один файл.

В этот момент я понял, что не знаю, будет ли этот файл удален, потому что я не знал, найдет ли SELECT все файлы в начале, или он будет обнаруживать их постепенно и попадет в мой недавно удаленный файл в конце концов.

1 Ответ

1 голос
/ 28 мая 2010

Это зависит от того, когда был выполнен оператор SELECT и как написано ваше приложение (если оно использует ORM и т. Д.), Но я подозреваю, что приведенный ниже анализ, вероятно, действителен.

Если у вас есть такой код:

<prepare query>
<execute query>
for each row in <query_result_cursor>
    <delete file>

Селект получит все свои строки, и если позднее строка будет обновлена ​​до Delete = 'Y', то она не поднимет ее.

Ключ идентифицирует, когда происходит <execute query> и когда это происходит в связи с вашим удалением. Если <execute query> произойдет до того, как вы удалите файл с помощью приложения, он будет обнаружен в вашем процессе. Если после этого произойдет <execute query>, он не поднимет его.

Краткий ответ: это происходит одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...