我有表格,其PK格式是这样的
YYMMXXXXXX
其中YY
是两位数的年份,MM
是两位数的月份,XXXXXX
是六位数的自动增量数,如果月份发生变化,则从1开始。
MySQL可以自动执行此操作吗?
先谢谢。
答案 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
);