数据库
首页 > 数据库> > MySQL自动增量自定义值

MySQL自动增量自定义值

作者:互联网

我正在尝试在mysql数据库中创建一列,该列自动递增1但从0-Z开始然后滚动.

例如
000、001、002,…,009、00A,00B,…,00Z,010,…,0ZZ,…,100.

我想让数据库通过自动递增字段创建列.

我的想法是:

>为从0到36的每个字符创建一列,然后将行N(其中N是最低有效数字)自动递增1.然后在每列上添加触发器,以在第N列达到时向N-1列添加1 36.
>创建一个包含36行的表,其中每行包含一个0-Z字符,并使用与上面类似的进位逻辑从表中提取适当的字符
>创建存储过程以执行第1项中的适当逻辑
>让实际程序生成一个值并将其插入表中
>具有常规的自动递增值并计算序列中的下一个值(这是最不理想的,因为它使得仅查看数据库的人员难以解析)

我希望有一种优雅的方法,可以让我做到这一点,就像内置的机制那样,我只是不知道.我对存储过程/触发器不了解,因此非常感谢您的帮助.我认为最简单的方法是为字符提供查找表,并在到达第36行时将其重置为0,然后对第N-1行进行进位.

解决方法:

根据您的评论,我的建议是执行以下操作:

使用常规整数auto_increment列作为该行的主键,然后使用varchar类型的列或* text类型之一(取决于您的mysql服务器版本和数据存储要求)来存储客户的“标识符”用途.

可以使用触发器自动生成标识符.

如果您要基于标识符进行查找(即,也许用户输入标识符以“跳转到”记录),则需要在该列上建立索引.

标签:indexing,database-design,auto-increment,mysql,database
来源: https://codeday.me/bug/20191102/1994547.html