Является ли UPDATE поля в MySQL атомарной операцией?

интернет программирование MySQL базы данных sql

Допустим, имеется несколько запросов:

UPDATE table SET field="AAAAAA" WHERE cond='N';
UPDATE table SET field="BBBBBB" WHERE cond='N';
UPDATE table SET field="CCCCCC" WHERE cond='N';
UPDATE table SET field="DDDDDD" WHERE cond='N';

Все эти запросы пытаются выполняться одновременно в сотнях параллельных потоков.
Может ли получится так, что в конечном итоге в field будет каша, вроде "CADDCB"?
Ответы:
нет, не может
на этот случай и придумали механизм блокировки.
пока один поток меняте таблицу, все другие курят в сторонке ;)
блокировка таблиц это помоему еще во времена dbf было.
сейчас (вроде бы) блокируются только изменяемые записи. разве не так?
Это исключено. В разных DBMS это по разному будет себя вести -- где-то таблица блокироваться, где-то страница, а где-то отдельная запись.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.