我有一张表employees
,其中包含公司员工的详细信息。
每个人都分配了一个唯一的序列号。每当我们添加新员工时,它应该在添加表单时显示序列号,该序列号比最后输入的员工的序列号大一个数字。
例如,该数据库包含12名员工。最后一个条目的序列号是12
。当我尝试添加新员工时,它应自动分配序列号13
。所以我不需要输入序列号。我怎么能这样做?
答案 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)
答案 3 :(得分:-2)
for employee_id use auto increment