我想给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
。它包含诸如 US00000001
、US00000002
等值。
通过创建表的 View ,可以在任何版本的 MySQL 中完成相同的操作。
关于mysql - 如何在MYSQL中使用auto_increment为数字赋予特殊格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40822024/