代码之家  ›  专栏  ›  技术社区  ›  Phill Pafford

PEAR DB\u common::nextId()保留下一个id?

  •  0
  • Phill Pafford  · 技术社区  · 14 年前

    我注意到在测试过程中,如果在我发出nextId()时,其他人插入一条记录,数据库将跳转索引中的一个数字。发出此命令是否保留下一个id?

    例子:

    用户1:

    $nextId = $db->nextId('id');
    echo "Next id: ".$nextId."<br />";
    

    用户2:(紧跟在用户1之后)

    $rs = $db->query(INSERT NEW RECORD HERE...);
    

    现在我手动查询数据库,看到记录id 1233和1235,但数据库中缺少我为其执行nextId()操作的1234。

    1 回复  |  直到 14 年前
        1
  •  1
  •   webbiedave    14 年前

    这是预期的结果吗?

    对。这是预期的行为。

    这样做的原因是,它允许您使用该id,而不必担心外部客户机执行的其他插入会被分配该id,从而阻止您使用它。

    manual :

    一个序列。顺序是 调用此方法。