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

标签 mysql auto-increment

我想给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 等值。

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

关于mysql - 如何在MYSQL中使用auto_increment为数字赋予特殊格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40822024/

相关文章:

php - 如何在 MySQL 语句中包含 PHP 变量

php - 无法使用单页 PHP 编码更改表单元素

sql-server - 删除后重置 SQL Server 中的自动增量

php - 每个月自动递增从 1 在 mysql 中用 php 开始

php - db 获取数组 drupal 7

php - 在准备好的语句中使用占位符时出错

MySQL查询用于选择多行作为这些行数据的数组

mysql - 两个主键和自动递增

mysql - 保留 mySQL 自动递增的 ID?

Mysql - 在实际插入时获取自动增量ID