我有一个task_id表,它有两列:

`tid`:task id,
`state`:0:unfinished,1:processing,2:finished

如果我只使用一个客户机(perl脚本),这很容易:获取一个任务id,将其更新为unfinished,处理它,并在循环中将其更新为processing
但我计划用几个客户来完成这项任务。两个客户有可能同时获取一个记录,如何避免?

最佳答案

如果mysql表的引擎是innodb,那么它会在更新表记录时锁定该行,这样其他请求就不会与以前的更新冲突。

08-16 18:08