是否可以在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 –