mysql自定义业务编码

这些只是基本的思路,可能代码并不能完美运行,细节方面就不在赘述,自己调整,仅仅提供思路。


1.整体思路,在触发器中设计生成规则并且插入到相应的表中。


2.测试表,

CREATE TABLE `worklist` (

`listCode` varchar(12) NOT NULL DEFAULT '',

`contacts` varchar(10) NOT NULL,

PRIMARY KEY (`listCode`)

) ENGINE=InnoDB DEFAULT CHARSET=gbk


3.测试触发器

DELIMITER $$

USE `test`$$

DROP TRIGGER /*!50032 IF EXISTS */ `setSeqCustomVal`$$

CREATE

/*!50017 DEFINER = 'root'@'localhost' */

TRIGGER `setSeqCustomVal` BEFORE INSERT ON `worklist`

FOR EACH ROW BEGIN

DECLARE dateStr VARCHAR(12) CHARACTER SET gbk;

SET dateStr = DATE_FORMAT(NOW(), '%Y%m%d');

SET @maxCode = (SELECT MAX(listCode) FROM worklist WHERE listCode LIKE CONCAT(dateStr, '%'));

IF @maxCode IS NULL

THEN

SET new.listCode = CONCAT(dateStr, '0001');

ELSE

SET new.listCode = CAST(@maxCode + 1 AS CHAR);

END IF;

END;

$$

DELIMITER ;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,759评论 18 399
  • .数据库 数据库的发展: 文件系统(使用磁盘文件来存储数据)=>第一代数据库(出现了网状模型,层次模型的数据库)=...
    小Q逛逛阅读 1,001评论 0 2
  • 一. Java基础部分.................................................
    wy_sure阅读 3,834评论 0 11
  • “勿以恶小而为之,勿以善小而不为”出自《诸葛亮集》,说的是刘备临终前对儿子刘禅说的话。意思是让刘禅不要轻视小...
    補缺楼丨胡德棒阅读 5,762评论 1 4
  • 最近读洛氏的书,不禁让我想起来我曾经的一些经历,尤其是,我多次经历的招教考试。 以前天真的以为,学了师范,将来就能...
    雪后山阅读 300评论 4 8