ДЛЯ ОБНОВЛЕНИЯ
InnoDB поддерживает блокировку на уровне строк. Выбранные строки могут быть заблокированы с помощью LOCK IN SHARE MODE или FOR UPDATE. В обоих случаях блокировка приобретается на строках, прочитанных запросом, и будет освобождена, когда текущая транзакция будет подтверждена.
Оператор FOR UPDATE из SELECT применяется только тогда, когда autocommit установлен в 0 или SELECT заключён в транзакцию. Блокировка приобретается на строках, и другие транзакции не могут записывать строки, приобретать блокировки и читать их (если их уровень изоляции READ UNCOMMITTED).
Если autocommit установлен в 1, LOCK IN SHARE MODE и FOR UPDATE операторы не действуют.
Если уровень изоляции установлен на SERIALIZABLE, все обычные SELECT операторы преобразуются в SELECT ... LOCK IN SHARE MODE.
Пример
SELECT * FROM trans WHERE period=2001 FOR UPDATE;
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/for-update/