我可以手动锁定MySQL表吗?

时间:2018-11-20 19:54:09

标签: mysql

我有多个独立的进程,脚本A和B,每个进程都访问同一张表。我想让脚本A从表中读取一条记录,然后修改该记录(或可能不会)。

问题是,我需要阻止脚本B访问其中的特定记录。也许有手动锁?可以在短短几毫秒内将脚本B拒之门外吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您不想锁定整个表吗?

对于InnoDB表,select...for update应该这样做,它将锁定记录(只需在查询末尾添加for update)。

在脚本A上:

  1. 创建交易
  2. 选择要更新的内容
  3. 如果要更新记录,请这样做。
  4. 完成交易后提交交易。

在脚本B上也进行选择更新,它将等待脚本A释放锁。