我們如何創建一個我們使用字母表值自動設置的表格,如Ref00000001?我們如何自動生成一個帶有字母表值的ID?
0
A
回答
0
MySQL不支持這種ID的自動生成。僅支持整數auto_increment標識。
您可以使用觸發器來做到這一點,但如果同時執行多個插入操作,它將不可靠。
最後但並非最不重要的是,由於性能原因,應避免主鍵的字符串列(特別是在InnoDB表中)。
0
使用標準的AUTO_INCREMENT字段在MySQL中簡單地生成ID的數字部分可能是一個好主意,然後在PHP中簡單地在輸出中添加「Ref」組件。
作爲一個建議,你可能想要創建一個單一的規範函數(「makeRef」或類似的),這樣這個活動只能通過一個函數來完成,因此在將來如果修改很容易,如此需要。
就MySQL而言,您可能還想使用ZEROFILL選項來將數值填充到一定的長度,儘管我個人幾乎要在上面的「makeRef」函數中使用PHP的str_pad函數來處理這個問題。用於pad_type參數的STR_PAD_LEFT選項。
1
寫作是否將來有人需要這種功能。我用php來生成這個值。非常簡單:
$q="select reference_number from accounts order by reference_number desc LIMIT 1";
$result = mysql_query($q);
$row = mysql_fetch_assoc($result);
$new_eps=explode('REF',$row['reference_number']); //get existing highest value from DB
$new_eps=$new_eps[1]+1; // increment by one
$eps_string="REF";
$length = 8 - strlen($new_eps); //I need 8 digits for my REF number
for($i=0;$i<$length; $i++){
$eps_string .='0';
}
$eps_string =$eps_string.$new_eps;
就是這樣!
相關問題
- 1. 自動生成字母數字ID
- 2. 如何生成20個字符的字母數字唯一ID
- 3. 我有3個表如何加入他們生成一個表?
- 4. 自動生成字母
- 5. 如何實現一到一個代碼第一種方法,如果我們有自動生成的ID
- 6. 帶有生成ID的表單字段的JQuery/Javascript設置值
- 7. VB.Net中自動生成的字母數字ID
- 8. 生成一個唯一的字母數字ID
- 9. SugarCRM/MySQL如何自動生成一個隨機的字母數字號碼?
- 10. 如何從xslt中的內容第一個字母序列生成一個ID?
- 11. 我們不能刪除一個有自動生成的序列ID字段的記錄
- 12. 如何生成具有自動休眠ID與初值
- 13. mySQL - 如何自動生成字段值
- 14. 如何在android中生成一個自動的id(增量)?
- 15. 如何獲取自動生成列的下一個ID
- 16. 自動生成ID
- 17. 生成自動ID
- 18. 自動生成ID
- 19. 自動生成的字母數字的唯一標識與C#
- 20. 如何生成每個只有一個屬性的ID表?
- 21. 休眠 - 另一個自動生成的字段不是ID
- 22. 與MySQL我可以有一個自動增量值生成
- 23. 我的多列自動完成功能只用一個字母
- 24. 生成字母數字員工ID
- 25. SSRS自動編號,但帶有字母
- 26. 如何實現一個自動完成jquery的檢索值(id)?
- 27. 如何找到一個具有動態生成ID的元素
- 28. ZK:使用自定義ID生成硒而有我使用的是自定義的ID生成的動態ID
- 29. 自動生成的ID
- 30. 如何提交多個自動生成的表單中的一個的值
如果以不正確的順序從數組中返回數字(例如:8,7,6,5,4,400,400,3,2,1),請將「order by reference_number desc」部分替換爲「by cast by order(replace(reference ,'REF','')爲無符號)desc「 – 2013-04-12 05:43:28