如何使用字母和数字自动递增ID号,例如“KP-0001”它将递增为“KP-0002”
谢谢!
答案 0 :(得分:5)
这是一篇有用的文章
但基本上我鼓励你在此创建自己的算法。您可以在BEFORE INSERT
触发器中添加该算法。或者你可以在前端做到这一点。
algorthm的伪代码示例
答案 1 :(得分:2)
我试图在很多方面做到这一点,但无法达到解决方案......我也使用触发器,但这也没有帮助我......
但我找到了一个快速的解决方案......
例如,您希望您的员工拥有员工代码'emp101','emp102',...等。 这也是一个自动增量...
首先创建一个包含三个字段的表,第一个字段包含您想要在开头的字母,即“emp”,第二个字段包含自动增加的数字,即101,102,...等,第三个字段包含即'emp101','emp102',......等等。
CREATE TABLE employee
(
empstr varchar( 5 ) default 'emp',
empno int( 5 ) AUTO_INCREMENT PRIMARY KEY ,
empcode varchar( 10 )
);
现在为empno提供auto_increment值。
ALTER TABLE employee AUTO_INCREMENT=101;
现在进入主题...每次插入值时,必须连接前两个字段以获取第三个字段的值
INSERT INTO employee( empcode )
VALUES ('xyz');
UPDATE employee SET empcode = concat( empstr, empno ) ;
答案 2 :(得分:1)
您无法自动增加varchar数据类型。执行此操作的其他方法是将varchar列分为两个不同的列,一个将具有整数部分,而另一个将具有类似于您的情况KP-
的字母,一旦您自动递增所有整数行,只需连接这两列
答案 3 :(得分:0)
自动增量是一个整数,因此无法添加文本。
查看this问题以获取其他参考资料。
答案 4 :(得分:0)
CREATE TABLE Customer ( CUSId INT NOT NULL IDENTITY(1, 1) PRIMARY KEY ,CUSKey AS 'Cus' + RIGHT('000' + CONVERT(VARCHAR(5), CUSId), 6) PERSISTED ,CusName VARCHAR(50) ,mobileno INT ,Gender VARCHAR(10) )