我创建了一个员工表,其中包含以下列:
id || empId || name || companyCode
== ====== ==== =========
我想要自动创建emplId。
选项1: 每个员工都应该获得独特的身份 EmpId应该以companyCode开头。
假设公司代码是' ci',那么其员工ID应该以ci开头,如ci101,ci102 ....
有没有办法像创建一些序列等那样做? 注意:我使用的是mySql 预期产出:
id || empId || name || companyCode
== ====== ==== =========
1 ci101 abc ci
2 xi101 xyz xi
3 ci102 lkj ci
选项2: 每个公司员工的ID应该从100开始。像X,Y或Z公司的第一个员工应该从101开始,如下所示:
id || empId || name || companyCode
== ====== ==== =========
1 101 abc ci
2 101 xyz xi
3 102 lkj ci
请帮忙。
答案 0 :(得分:0)
您可以使用触发器根据公司代码和ID更新插入行的empid,希望这有助于
CREATE TRIGGER empid
AFTER INSERT ON 'employeeTbl' for each row
begin
UPDATE `employeeTbl` SET `empId ` = CONCAT(NEW.companyCode, NEW.id) where id=New.id;
END;
答案 1 :(得分:0)
我不喜欢你建议的选项,因为任意ID不应该带有任何意义。根据正常形式,应该从数据库中确定ID是员工ID或员工是公司雇用的事实,而不是ID的值。
生成员工ID的最简单方法是在最高的一个中添加1:
insert into employees
select 1 + max(id) as new_id, ... values ...
from employees