mysql 编号生成

1、序列号生成的方法

DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `get_workNo`() RETURNS varchar(45) CHARSET utf8
BEGIN
DECLARE newWorkNo varCHAR (45) ;
	DECLARE currentDate varCHAR (15) ;-- 当前日期,有可能包含时分秒
	DECLARE maxNo INT DEFAULT 0 ;
	DECLARE oldWorkNo VARCHAR (25) DEFAULT '' ;-- 离现在最近的满足条件的订单编号     

	SELECT SUBSTRING(DATE_FORMAT(NOW(), '%Y%m'),3,6) INTO currentDate ;

	SELECT IFNULL(workNo, '') INTO oldWorkNo
	  FROM operation_work
	  WHERE SUBSTRING(workNo, 3, 4) = currentDate
	ORDER BY id DESC LIMIT 1 ; -- 有多条时只显示离现在最近的一条     

	IF oldWorkNo != '' THEN
		SET maxNo = CONVERT(SUBSTRING(oldWorkNo, -4), DECIMAL) ;-- SUBSTRING(oldOrderNo, -5):订单编号如果不为‘‘截取订单的最后5位
	END IF ;

	SELECT
		CONCAT('TS', currentDate,  LPAD((maxNo + 1), 4, '0')) INTO newWorkNo ;

RETURN newWorkNo;
END$$
DELIMITER ;

2、插入数据时的触发器

USE `it_system`;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` TRIGGER `operation_work_BINS` BEFORE INSERT ON `operation_work` FOR EACH ROW
begin SET @workNo = get_workNo();
       set NEW.workNo=@workNo;
end
时间: 2024-10-07 19:23:09

mysql 编号生成的相关文章

数据库-mysql UUID()生成固定格式

问题描述 mysql UUID()生成固定格式 (例如:F0427666-20151111151544) 在数据库中生成,不是在程序里面,大神们指导下呗 解决方案 生成固定格式的date 解决方案二: 你这是在程序后台,我的是在直接在数据库生成固定格式: F+6位随机数+"-"+当前日期+7位随机数 解决方案三: 自定义数据库的函数,在函数里对相应字符串生成后拼接返回. 解决方案四: 给你个类似的 --以下代码生成的编号长度为12,前6位为日期信息,格式为YYMMDD,后6位为流水号.

mysql-请问:用java代码怎样读取MySQL数据库生成JSP文件?谢谢!

问题描述 请问:用java代码怎样读取MySQL数据库生成JSP文件?谢谢! 用java代码怎样读取MySQL数据库生成JSP文件? 解决方案 你是要写一个数据导出的程序吧,程序里面包含数据导出命令,生成文件格式为jsp啊. 解决方案二: 将文件从数据库(MySQL)中进行读取 解决方案三: 不能从后台去数据库去数据然后写到JSP文件?

请问:java代码通过io流怎么读取MySQL数据库生成jsp文件?谢谢!

问题描述 请问:java代码通过io流怎么读取MySQL数据库生成jsp文件?谢谢! java代码通过io流怎么读取MySQL数据库生成jsp文件 解决方案 IO读取数据库?!你确定? 最次也得是jdbc吧?要有大神实现我也涨涨姿势.. 或者jdbc读到内存再写成文件,再用IO读到内存写成jsp? 解决方案二: io流读取文件数据,数据库都是sql语句获取的,你这问法不懂, 解决方案三: 回复a877536298: <% String url = "jdbc:mysql://localho

在MySQL中生成随机密码的方法_Mysql

cat /dev/urandom | LC_ALL=C tr -dc "[:alnum:]" | fold -w 10 |head -10 Si1N9kUyuZ ddzsRXFgxA caDRBRT4Px buGk6LkX4d N5Xod1TOyr 1645cBxAjl KRjwJR2Txu nhQedXagL9 RraDEZgfhY QxCurm5eZF 参数说明: 如果需要特别复杂的密码可以试一下: cat /dev/urandom | LC_ALL=C tr -dc "

运用Mysql语句生成后门木马的具体方法

通过Mysql 的语句生成后门木马的方法: 以下为引用的内容: SELECT * FROM `vbb_strikes` WHERE 1 union select2,3,0x3C3F7068702073797374656D28245F524551554553545B636D645D293B3F3Efrom vbb_strikes into outfile 'c:/inetpub/wwwroot/cmd.php' 通过Mysql 的注入或者在 phpmyadmin 里运行以上语句,则会C:/inet

.Net初使用MySql数据库生成Model类并与SqlServer简单对比

最近的一个项目,在.net中使用MySql数据库,背景是这样的:Sql Server要购买授权,每年100多万,本来公司这么大,这点钱也不算什么,但是领导说能省就省.对于技术人员来说,这是个挑战,时间紧,技术上还有未知的风险.想想从实习到现在,四年多的.Net研发了,都是用的Sql Server数据库,这个Mysql还是头一回用-- 一.根据数据库生成EF的Model类 //表字段信息model public class TableSchemaModel { /// <summary> ///

mysql自动生成的自增ID会是已存在的!

问题描述 最近项目出了问题,mysql的member表主键是自增的.但是目前表里面自增已经到了1900,按理说下一个数据insert以后id会自动赋值为1901,但是mysql自动赋值为一个有的值.结果报错org.springframework.dao.DataIntegrityViolationException:Duplicateentry'1803'forkey'PRIMARY';SQL[n/a];constraint[null];nestedexceptionisorg.hibernat

PHP+mysql+Highcharts生成饼状图_jquery

Mysql 首先我们建一张·chart_pie·表作为统计数据. -- -- 表的结构 `chart_pie` -- CREATE TABLE IF NOT EXISTS `chart_pie` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(30) NOT NULL, `pv` int(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUT

关于mysql自动生成一个规定格式的字段

问题描述 问个问题数据库用到了mysql有个字段,规则是这样的,是公司简称,比如MS,后面加上一个自增长的数,从000001往上递增而且这个字段值是在保存的时候自动生成的有什么办法吗?公司简称MS的话,MS000001,MS000002往上递增公司简称CA的话,CA000001,CA000002往上递增 解决方案 解决方案二:数据库级别实现的话效率估计会比较低,在大数据量的情况下,不如考虑在代码级别实现解决方案三:可以用触发器来实现吗如果在代码级别实现的话,那应该怎么来实现呢?解决方案四:触发器