1

例如,如果我有这个算法:

  1. 连接到数据库
  2. 尝试从数据库中选择一些数据
  3. 如果数据不存在
    1. 从某处获取数据
    2. 将数据插入数据库
  4. 关闭数据库连接
  5. 对数据做一些事情
  6. 我们完成了

然后,如果 php 脚本启动并且数据库没有数据,则可能在生成数据时(步骤 3.1),另一个用户再次启动脚本。然后,我认为这样的想法更好:

  1. 连接到数据库
  2. 尝试从数据库中选择一些数据(如果条目被锁定,脚本会等待直到它被解锁)
  3. 如果数据不存在
    1. 锁定数据库条目
    2. 从某处获取数据
    3. 将数据插入数据库
    4. 解锁数据库条目
  4. 关闭数据库连接
  5. 对数据做一些事情
  6. 我们完成了

我该怎么做那个?(我是SQL新手,也许有更合适的名字)

4

1 回答 1

1

在同一个事务中进行读取和可能的写入,那么数据库将确保两个用户不会相互干扰。

(阅读ACID 属性。)

于 2013-03-17T20:29:03.900 回答