📅  最后修改于: 2023-12-03 15:30:24.462000             🧑  作者: Mango
在 MySQL 中,可以使用自动增量来生成唯一的 ID。默认情况下,MySQL 使用整数值来作为自动增量。但是,如果想生成一个以 DD-MM-XXX 格式的自动增量,该怎么办呢?下面,我们提供了一个 SQL 语句的示例。
SET @current_date = DATE_FORMAT(CURDATE(),'%d-%m-%Y');
SET @prefix = LEFT(@current_date, 5);
SET @max_id = (SELECT MAX(id) FROM table_name WHERE id LIKE CONCAT(@prefix, '%'));
IF (@max_id IS NULL) THEN
SET @max_id = CONCAT(@prefix, '001');
ELSE
SET @max_id = CONCAT(@prefix, LPAD(SUBSTRING(@max_id, 7) + 1, 3, '0'));
END IF;
INSERT INTO table_name (id, column1, column2, ...)
VALUES (@max_id, value1, value2, ...);
上述 SQL 语句实现了以 DD-MM-XXX 格式的自动增量生成。其中,@prefix 表示当前日期的前 5 个字符。@max_id 表示符合该前缀的 ID 中最大的那个 ID。如果该前缀的 ID 不存在,则 @max_id 赋值为该前缀加上 001。如果该前缀的 ID 存在,则 @max_id 赋值为该前缀加上递增 1 后,且长度为 3 的 ID。
将生成的自动增量作为 ID,并将其与其他字段一起插入到表中。
通过上述 SQL 语句,可以实现以 DD-MM-XXX 格式的自动增量生成。需要注意的是,该语句只适用于 MySQL 数据库。