我有一个针对InnoDB表的mysql查询,像这样:
UPDATE items SET qty = qty + 5 WHERE item_id = 1234 LIMIT 1;
我需要为此使用事务吗?如果不使用事务会发生什么不良后果吗?
我有一个针对InnoDB表的mysql查询,像这样:
UPDATE items SET qty = qty + 5 WHERE item_id = 1234 LIMIT 1;
我需要为此使用事务吗?如果不使用事务会发生什么不良后果吗?
没有什么严重的事情会发生。默认情况下,MySQL将所有单个更新/插入/删除命令包装在一个事务中。如果更新出现问题,则应正确地回滚事务。
只有在组合多个更改并希望它们全部"同时"或者"根本不"生效时才需要使用事务。
您可以在文档中了解更多信息。
update t set c=c+1
,那么如果有10k个用户同时运行该语句,我们会遇到丢失更新的问题吗? - Pacerier