1

如果我做一个像这样的查询

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

这个操作是原子的吗?也就是说,插入到某个表中是否有可能在查询后更改 b 的值,但在插入完成之前,导致插入得到错误的值?

4

1 回答 1

-1

我的猜测是它不是。您可以锁定它以确保它不会更改:

INSERT INTO sometable (b)
SELECT b+10
FROM sometable
ORDER BY id DESC
LIMIT 1
LOCK IN SHARE MODE
于 2015-11-25T12:33:31.263 回答