Будет SQL Выбрать запрос, выбрать запись, которая была вставлена ​​во время выполнения запроса Выбрать? - PullRequest
0 голосов
/ 19 апреля 2020

Допустим, у нас есть одна таблица bookings, которая содержит миллиард записей. Мы написали простой запрос SELECT, чтобы выбрать несколько записей из этой таблицы с некоторыми предложениями WHERE (не имеет значения, что было в предложении WHERE. Этот запрос займет несколько секунд). После выполнения этого запроса SELECT (и до его завершения) мы вставили запись в нашу таблицу bookings (эта запись удовлетворяет условиям WHERE первого запроса SELECT).

Вопрос: " Будет ли выбрана эта новая запись, когда первый SELECT запрос завершит свою работу? "

Желательно, я хочу ответить о случае PostgreSQL, но был бы рад услышать о том, как MySQL, SQL Сервер и другие будут вести себя в такой ситуации.

Спасибо.

1 Ответ

0 голосов
/ 19 апреля 2020

Будет ли выбрана эта новая запись, когда первый запрос SELECT завершит свою работу

Нет.

Каждый оператор является атомом c операции, и видит согласованное состояние (= моментальный снимок) базы данных, как это было в момент запуска оператора.

Вышесказанное относится к Postgres и Oracle (возможно, также к другим СУБД, но я не могу сказать наверняка. Некоторые поддерживают грязное чтение, где это не гарантируется)

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