当前位置: 首页 > 面试题库 >

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

傅兴平
2023-03-14
问题内容

是否可以在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中吗?我可以有一个以字母为前缀的自动递增主键,例如R1234,R1235,R1236 …等等吗? 问题答案: 您可以做的是将密钥存储为两列。一个char前缀和一个auto-incrementing int,它们都被分组为主键。

  • 问题内容: Java中的“自动递增”字母-这可能吗?从A到Z而没有第三方库? 问题答案: 是的,您可以这样做: 类型转换也是可能的:

  • 问题内容: 在MySQL中,是否可以在自动递增前面附加一个字母。我的数据库中有几个表,其中一些表具有通过自动增量创建的唯一ID。我希望能够通过前面的字母来区分自动生成的数字。 这不是绝对必需的功能,但只会帮助简化小型任务。 问题答案: 不幸的是你不能那样做。至少不是在sql中。自动增量字段是整数类型,因此在其中添加字母会违反约束。 我希望这可以引导您朝正确的方向发展。

  • 我想创建一个复合主键,其中一个字段是自动生成的(JPA)。我能这么做吗?有没有可能从spring环境中得到一个生成器? null

  • 017. Letter Combinations of a Phone Number[M] 问题 Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephon

  • 我需要一个java方法,它接受一个整数,然后将其递增并为您提供相应的alpha字符。类似于这样: 因此,如果我传递value等于,那么它应该递增并返回字母。如果我传递它,那么它应该返回字母。如果我将数字传递给它,那么它应该返回。如果我将数字传递给它,那么它应该返回等等。 alpha几乎模拟了excel工作表列的表示方式,我需要做的就是通过传递一个数字从方法中获取alpha值。除了从返回的字符串之外