如何生成php mysql驱动数据库的下一个id号

时间:2012-01-05 13:32:24

标签: php mysql select insert-update

我有一张表employees,其中包含公司员工的详细信息。

每个人都分配了一个唯一的序列号。每当我们添加新员工时,它应该在添加表单时显示序列号,该序列号比最后输入的员工的序列号大一个数字。

例如,该数据库包含12名员工。最后一个条目的序列号是12。当我尝试添加新员工时,它应自动分配序列号13。所以我不需要输入序列号。我怎么能这样做?

4 个答案:

答案 0 :(得分:6)

即使查询当前数据库状态(除了正好一个用户正在使用该应用程序),您也无法准确预测下一个auto_increment ID。示例:打开表单,从DB中获取下一个auto_increment ID,并将13显示为下一个预测值。在此期间,另一个用户打开表单并以比您更快的速度保存表单。其他用户记录的真实ID为13,您的记录为14。

如果您确实想在表单中显示已使用的ID,则需要对记录进行某种分配(例如,在打开表单并使用其ID时创建空记录)。对于某种状态字段或必填字段,您可以在应用程序中过滤这些空记录,直到它们完成并定期清除未完成的记录。唯一的缺点是,如果用户在没有填写表格的情况下打开表格,它可能会给你不连续的ID(例如14,15,18,20 ......)。

答案 1 :(得分:3)

如果序列号设置为auto_increment,您可以预先使用以下命令查找下一个auto_increment值:

$sql = "SHOW TABLE STATUS LIKE table_name";
$r = mysql_query($sql);

$row = mysql_fetch_assoc($r);
$next_increment = $row['Auto_increment'];

其中table_name是表的名称。

答案 2 :(得分:0)

将序列号设置为AUTO_INCREMENT

检查出来

http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

答案 3 :(得分:-2)

for employee_id use auto increment