MySQL生成一个唯一ID

毫秒时间戳ID

SELECT SUBSTR(date_format(NOW(3), '%Y%m%d%H%i%s%f'), 1, 17) as uniqueid
  • SUBSTR(str, pos, len) 函数的参数 pos 的坐标从 1 开始;
  • %Y 四位数字表示的年份;而 %y 两位数字表示的年份;
  • %m 两位数字表示的月份(01, 02, ..., 12);
  • %d 两位数字表示月中的天数(00, 01,..., 31);
  • %f 可以获得6位的微秒 microsecond;
  • 年份4位,月份2位,天数2位,时分秒6位,毫秒保留3位,总位数为17位;

参考文档:
详解mysql 获取当前日期及格式化

mysql 时间类型精确到毫秒、微秒及其处理

随机数字ID

SELECT CONCAT(date_format(NOW(), '%Y%m%d%H'), LPAD(FLOOR(RAND()*10000000),7,0)) as idNumber

随机UUID

select replace(uuid(),'-','') as uuid;

参考文档:MySQL生成UUID

原文地址:https://www.cnblogs.com/kendoziyu/p/15323633.html