我是靠谱客的博主 温婉铃铛,最近开发中收集的这篇文章主要介绍mysql 触发器流水号_mysql使用触发器生成唯一订单号,,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

需求:订单号唯一,并且期望是时间格式加其他字符串,

实现:采用触发机制,在新增时根据新增id值加1作为订单生成的随机且确定唯一的数,因为id唯一;

遇到问题:新增时不能提前知道id值,

解决:取到当前表中最大值+1即为id;

业务需要研究几个小时终于实现一套可行方案;

代码:

建表

DROP TABLE IF EXISTS `qs_test`;

CREATE TABLE `qs_test` (

`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,

`order_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,

`value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,

PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

创建触发器:

触发器主要代码

set new.order_num = concat(date_format(now(),'%y%m%d%i'),(select LPAD(IFNULL(max(id),0)+1,11,0) FROM qs_test))

触发器全部代码

CREATE DEFINER = `root`@`%` TRIGGER `insert_value_add` BEFORE INSERT ON `qs_test` FOR EACH ROW set new.order_num = concat(date_format(now(),'%y%m%d%i'),(select LPAD(IFNULL(max(id),0)+1,11,0) FROM qs_test)) ;

标签:qs,utf8mb4,触发器,订单号,mysql,test,NULL,id

来源: https://www.cnblogs.com/hardykay/p/12015758.html

最后

以上就是温婉铃铛为你收集整理的mysql 触发器流水号_mysql使用触发器生成唯一订单号,的全部内容,希望文章能够帮你解决mysql 触发器流水号_mysql使用触发器生成唯一订单号,所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部