是否可以在MySQL中組合使用alpha元素和數字的自動遞增函數?複合(字母數字)主鍵和自動增量
我有一個像QAb99,QAb101,QAd9003等鍵的現有系統。最大數字部分範圍從1到9999,而字母以QA開頭,範圍從QAa到QAd等,最終將通過QAd9999到QAe1等。
是否更好地管理SQL或SQL以外的生成新密鑰(即PHP腳本)?
謝謝。
是否可以在MySQL中組合使用alpha元素和數字的自動遞增函數?複合(字母數字)主鍵和自動增量
我有一個像QAb99,QAb101,QAd9003等鍵的現有系統。最大數字部分範圍從1到9999,而字母以QA開頭,範圍從QAa到QAd等,最終將通過QAd9999到QAe1等。
是否更好地管理SQL或SQL以外的生成新密鑰(即PHP腳本)?
謝謝。
我剛纔問過這個。不幸的是Mysql不這樣做。我很喜歡它,但它沒有。在PHP中,你可以做到這一點。例如:
public function random_id_gen($length)
{
//the characters you want in your id
$characters = '23456789ABCDEFGHJKLMNPQRSTUVWXYZ';
$max = strlen($characters) - 1;
$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= $characters[mt_rand(0, $max)];
}
return $string;
}
的
MySQL自動增量總是數字。有幾個方法,你可以採取:
正如你可能知道,您可以將序列轉換爲數字和後面; 'a'到'z'只是0到250,000;如果你去加倍,那就是260,000。你有26個基本系統,乘以10,000。
可能重複的[MySQL的自動遞增的字母數字的主鍵??](http://stackoverflow.com/questions/6444355/mysql-auto-incrementing-alpha-numeric-primary-key ) –
@fbas:如果您不介意使用MyISAM,則可以使用複合auto_incrementing鍵。在這個問題中看到我的答案:http://stackoverflow.com/questions/5455436/creating-primary-key-based-on-date/5455513#5455513 –