PEAR DB_common :: nextId()保留下一个id?

时间:2010-10-01 19:26:08

标签: php pear

我注意到在测试期间,如果有人在我发出nextId()时插入了一条记录,数据库将跳转索引中的数字。发出此命令会保留下一个ID吗?

示例:

用户1:

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

结果:1​​234,但没有插入,因为我刚刚获得nextId()

用户2 :(恰好在用户1之后)

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

id = 1235,插入新记录

现在我手动查询数据库,我看到记录ID 1233和1235,但是我在DB中缺少我执行nextId()的1234。

这是预期的结果吗?

1 个答案:

答案 0 :(得分:1)

  

这是预期的结果吗?

是。这是预期的行为。

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

来自manual

  

从中返回下一个可用的数字   一个序列。顺序是   每次自动递增   这个方法叫做。