2013-02-04 76 views

回答

0

自动增量是一个整数,所以添加文本将不可能。

检查出this问题的其他参考。

1

您不能自动增加varchar数据类型。这样做的其他方式是将varchar列分成两个不同的列,一个将有整数部分和其他将有像你的情况字母表KP-一旦你自动增加所有整数行,只是连接这两列

5

这里是一篇有用的文章

但基本上我鼓励你创建这个自己的算法。您可以在BEFORE INSERT触发器中添加该算法。或者你可以在前端做到这一点。伪代码的

实施例为algorthm

  • 得到lastID [KP-0001]
  • 除去一些字符,并把它在一个变量[KP-]
  • 转化剩余的因为它是一个字符串[]
  • 增加1 [1 + 1 = 2]
  • 将其转换回串和垫零右侧[]
  • 串联可变和新递增的数目[KP-0002]
  • 保存。
1

我想这样做在很多方面,但未能达成解决方案......我也用触发器但到did'nt帮我...

但是我发现了一个快速的解决方案那... ....

例如,您希望您的员工拥有员工代码'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_increrment值。

ALTER TABLE employee AUTO_INCREMENT=101; 

现在来到的主题......每次插入值的时候你要连接第一两个领域获得的值,他第三场

INSERT INTO employee(empcode) 
VALUES ('xyz'); 
UPDATE employee SET empcode = concat(empstr, empno) ;