2013-02-04 94 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) ;