例如,如果我有这个算法:
- 连接到数据库
- 尝试从数据库中选择一些数据
- 如果数据不存在
- 从某处获取数据
- 将数据插入数据库
- 关闭数据库连接
- 对数据做一些事情
- 我们完成了
然后,如果 php 脚本启动并且数据库没有数据,则可能在生成数据时(步骤 3.1),另一个用户再次启动脚本。然后,我认为这样的想法更好:
- 连接到数据库
- 尝试从数据库中选择一些数据(如果条目被锁定,脚本会等待直到它被解锁)
- 如果数据不存在
- 锁定数据库条目
- 从某处获取数据
- 将数据插入数据库
- 解锁数据库条目
- 关闭数据库连接
- 对数据做一些事情
- 我们完成了
我该怎么做那个锁?(我是SQL新手,也许有更合适的名字)