如何在MYSQL中使用auto_increment为数字赋予特殊格式?

时间:2016-11-26 19:05:09

标签: mysql auto-increment

我想在MYSQL中为用户的ID提供特定格式,但它必须是auto_increment类型。我的想法是这样做:US01,US02,US03,US04 ......

我不知道如何使用此类ID,我非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

MySQL中的自动增量数字可以是INT类型,也可以是BIGINT类型。您无法将另一种数据类型分配给自动增强器。 (所以,你不知道该怎么做也就不足为奇了,是吗?)

如果您在MariaDB或MySQL 5.7.5+中工作,可以创建一个虚拟(计算)列,将整数自动增量器转换为您想要的格式。如果您的自动增量列为user_id,则会为您提供一个具有所需ID值的虚拟列。

  ALTER TABLE mytable 
   ADD COLUMN useridtext varchar(10) 
              GENERATED ALWAYS AS 
                (CONCAT('US', LPAD(user_id,8,'0')))
              PERSISTENT

在MariaDB中创建一个名为useridtext的新虚拟列。它包含US00000001US00000002等值。

通过创建表格视图,可以在任何版本的MySQL中完成相同的操作。