繁体   English   中英

如何为PHP MySQL驱动数据库生成下一个ID号

[英]How generate next id number for php mysql driven database

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

每个人分配一个唯一的序列号。 每当我们添加新员工时,它都应以添加形式显示序列号,该序列号比最后输入的员工的序列号大一个。

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

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

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

如果序列号设置为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是表的名称。

将序列号设置为AUTO_INCREMENT

看看这个

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

for employee_id use auto increment

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM