2015-11-25 10 views
1

Если я делаю запрос какЯвляется ли mysql вставка из атомарного подзапроса?

insert into sometable b + 10 from select b from (select b from sometable order by id desc limit 1) 

Является ли эта операция атомная? То есть, было бы возможно, что вставка в sometable для изменения значения b AFTER была запрошена, но до того, как вставка завершится, в результате чего вставка получит неправильное значение?

+0

Иногда - см https://dev.mysql.com/doc/refman/5.6/en/set-transaction.html – symcbean

ответ

-1

Я предполагаю, что это не так. Вы можете заблокировать его, чтобы убедиться, что он не меняется:

INSERT INTO sometable (b) 
SELECT b+10 
FROM sometable 
ORDER BY id DESC 
LIMIT 1 
LOCK IN SHARE MODE 
+0

«Моя догадка» это не ответ. Любой может догадаться. – Benubird