CREATE TABLE `code_generate_dd` (
`id` int(50) NOT NULL AUTO_INCREMENT COMMENT '主键',
`first_code` varchar(10) NOT NULL COMMENT '第一段code',
`second_code` varchar(8) NOT NULL COMMENT '第二段code',
`last_code` varchar(10) NOT NULL COMMENT '尾段',
`generate_type` varchar(20) NOT NULL COMMENT '编码类型',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='单据号规则订单(只针对订单)'
DELIMITER $$

CREATE DEFINER = `root` @`%` FUNCTION `fn_max` (f_generate_type VARCHAR (50)) RETURNS VARCHAR (50)
BEGIN
DECLARE result VARCHAR (50) ;
SET result =
(SELECT
MAX(cg.`last_code`)
FROM
code_generate cg
WHERE 1 = 1
AND cg.`second_code` = DATE_FORMAT(NOW(), '%Y%m%d')
AND cg.`generate_type` = f_generate_type) ;
RETURN result ; END $$ DELIMITER ; SELECT fn_max("brd")
;
=======================================
DELIMITER $$ DROP FUNCTION IF EXISTS `fn_lastcode`$$ CREATE DEFINER = `root` @`%` FUNCTION `fn_lastcode` (f_generate_type VARCHAR (50)) RETURNS VARCHAR (50) CHARSET utf8
BEGIN
DECLARE result VARCHAR (50) ;
IF (fn_max (f_generate_type) = NULL)
THEN SET result =
(SELECT
RIGHT(CONCAT('', '' + 1), 5)) ;
ELSE SET result =
(SELECT
RIGHT(
CONCAT(
'',
(fn_max (f_generate_type)) + 1
),
5
)) ;
END IF ;
RETURN result ;
END $$ DELIMITER ; SELECT fn_lastcode('brd');
;
====================================================
DELIMITER $$ CREATE DEFINER = `root` @`%` FUNCTION `fn_getBRD` (f_generate_type VARCHAR (50)) RETURNS VARCHAR (50)
BEGIN
DECLARE result VARCHAR (50) ;
INSERT INTO code_generate_dd (
first_code,
second_code,
last_code,
generate_type
)
VALUES
(
f_generate_type,
DATE_FORMAT(NOW(), '%Y%m%d'),
fn_lastcode (f_generate_type),
f_generate_type
) ;
SET result =
(SELECT
CONCAT(
dd.`first_code`,
dd.`second_code`,
dd.last_code
) aa
FROM
code_generate_dd dd
WHERE 1 = 1
AND id =
(SELECT
MAX(id)
FROM
code_generate_dd)) ;
RETURN result ;
END $$ DELIMITER ; SELECT fn_getBRD("brd");

这个是在数据库底层,直接调用,返回编码;用sql 写的函数;

注意:mysql 和oracle在函数创建的时候,规范有点不一样;

Mysql 函数的应用的更多相关文章

  1. Mysql - 函数

    Mysql提供的函数是在是太多了, 很多我都见过, 别说用了. 园子里面, 有人弄了一个比较全的. MYSQL函数 我这里会将他写的完全拷贝下来, 中间会插入一些自己项目中使用过的心得 一.数学函数 ...

  2. mysql连接查询,封装mysql函数

    连接查询 交叉连接语法: select  * | 字段列表 from 表1  cross join 表2 内连接: select *|字段列表 from 左表 inner join 右表 on 左表. ...

  3. MySQL 函数大全

    mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NU ...

  4. MySQL函数不能创建的解决方法

    MySQL函数不能创建,是一个很麻烦的问题,下面就为您提供了一个解决此问题的方法,如果您也遇到过类似的问题,不妨一看. http://database.51cto.com/art/201010/229 ...

  5. Mysql函数:Last_insert_id()语法讲解

    Mysql函数可以实现许多我们需要的功能,下面介绍的Mysql函数Last_insert_id()就是其中之一,希望对您学习Mysql函数能有所帮助. 自动返回最后一个INSERT或 UPDATE 查 ...

  6. linux下mysql函数的详细案列

    MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *pas ...

  7. MySQL函数讲解(MySQL函数大全)

    讲mysql函数之前先给大家展示一下利用mysql函数的一个例子: SELECT i.item_id, i.item_name, i.cid, i.last_update_time, u.url, u ...

  8. mysql函数全解析

    本文摘自:http://www.cnblogs.com/cocos/archive/2011/05/06/2039469.html mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1. ...

  9. MySQL函数笔记

    MySQL函数笔记 日期函数 SELECT t1.xcjyrq, t1.* FROM view_sbxx t1 WHERE t1.syzt ; SELECT t1.xcjyrq, t1.* FROM ...

  10. 【转】mysql函数

    MySQL函数 MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: 系统信息函数: 加密函数: 格式化函数: 一.数学函数 数学函数主要用于处理数字,包括 ...

随机推荐

  1. Maven归纳

      一.常用功能 1.Maven的中央仓库 https://mvnrepository.com/ 2.添加jar包依赖 1.首先点击pom.xml,然后点击弹出页面中的Dependencies选项,接 ...

  2. 2010: C语言实验——逆置正整数

    2010: C语言实验——逆置正整数 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 949  Solved: 691[Submit][Status][We ...

  3. js获取当前日期、前一天、后一天的日期的例子

    <script> function addByTransDate(dateParameter, num) { var translateDate = "", dateS ...

  4. CPP-基础:C++中为什么需要一个头文件,一个cpp文件

    把文件分成头文件和源文件完全是为了方便扩展和组织程序 这么说吧 我们可能会自定义很多函数 而这些函数分别会在不同的地方被调用 甚至有些时候我们需要把一堆函数打包起来一起调用 比如#include &q ...

  5. GSS4 - Can you answer these queries IV || luogu4145上帝造题的七分钟2 / 花神游历各国 (线段树)

    GSS4 - Can you answer these queries IV || luogu4145上帝造题的七分钟2 / 花神游历各国 GSS4 - Can you answer these qu ...

  6. 学习python的第十天(内置算法:列表数据类型,元祖数据类型,字典数据类型)

    5.8自我总结 1.列表类型内置算法 1.必须掌握 1.按索引取值(正向取值+反向取值),即可存也可以取 #用于取其中一个值 name = ['yang','wen','yi'] ##正方向取wen, ...

  7. 笛卡尔&小雷:科学发展有规律,研究科学有方法

    一直在总结自己的学习和研究方法,最近在读吴军写的<文明之光> ,感觉这篇介绍笛卡尔的内容非常有价值,特此整理.最近开始在密谋自己的理论体系,低调实施中...  笛卡尔按照感知的方式,把人的 ...

  8. React中css的使用

    网页的布局.颜色.形状等UI展示方式主要是由Css进行设置,在ReactJs中也是一样.ReactJs中的Css结构方式与传统的Web网页类似,但依然存在一些差异.ReactJs中Css文件本身的编写 ...

  9. HDU 4003 Find Metal Mineral

    这个题是POJ1849的加强版. 先说一个很重要的结论,下面两种方法都是从这个结论出发的. 一个人从起点遍历一颗树,如果最终要回到起点,走过的最小权值就是整棵树的权值的2倍. 而且K个人的情况也是如此 ...

  10. 解决手机助手与 android sdk 的adb 冲突问题

    现象:手机助手与 sdk 内的 adb冲突,用助手与真机连接后,sdk adb 就被干掉了 突发奇想: 突然有一天想到用助手的adb来覆盖sdk内的adb,果然奏效.现在eclipse.助手.cmd窗 ...