格式化自动增量从每月1开始

时间:2015-08-06 04:30:19

标签: mysql triggers

我有表格,其PK格式是这样的

YYMMXXXXXX

其中YY是两位数的年份,MM是两位数的月份,XXXXXX是六位数的自动增量数,如果月份发生变化,则从1开始。

MySQL可以自动执行此操作吗?

先谢谢。

1 个答案:

答案 0 :(得分:0)

我使用triggers搜索解决方案,但它使用临时表。

https://stackoverflow.com/a/17894239/1525199

但后来我找到了自己的解决方案:

让我的表名为my_table,并且有PK id (INT),还有一个字段time (datetime)。我只需要从my_table获得当前月份的最后一个(最大)ID,然后加1。

SET @mos= (SELECT MAX(id) FROM my_table WHERE MONTH(`time`) = MONTH(NOW()) AND YEAR(`time`) = YEAR(NOW()));

SELECT IF(
    @mos IS NULL,
    CONCAT(YEAR(NOW()),MONTH(NOW()),'000001'),
    @mos + 1
    );