如何给 MYSQL 中 auto_increment 的数字指定特殊格式?

How to give a special format to a number with auto_increment in MYSQL?

我想给MYSQL中的用户id指定一个特定的格式,但必须是auto_increment类型。我的想法是这样做:US01,US02,US03,US04...

我不知道如何做这种类型的 ID,非常感谢你的帮助

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 等值。

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