小编典典

复合(字母数字)主键和自动递增

sql

是否可以在MySQL中制作结合了alpha元素和数字的自动增量功能?

我有一个具有QAb99,QAb101,QAd9003等键的现有系统。最大数字部分的范围为1到9999,而字母以QA开头,范围从QAa到QAd等,最终将通过QAd9999到QAe1等。

在SQL或SQL外部(例如php脚本)管理生成新密钥是否更好?

谢谢。


阅读 166

收藏
2021-04-07

共1个答案

小编典典

我前一阵子问过。不幸的是,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;
    }
2021-04-07