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. webpack 使用流程

    webpack loader 读文件的 脚手架  vue-cli: 自动化的小工具,帮咱们把项目的架子搭起来 -------------------------------------- 开发环境 n ...

  2. jQuery中ready方法的实现

    https://blog.csdn.net/major_zhang/article/details/80146674 先普及一下jquery.ready()和window.onload,window. ...

  3. 使用crontab定时执行python文件问题追根溯源

    使用crontab执行定时任务不是第一次用,昨天下午设置几个任务,yy里面已存在的任务,修改指定python环境和执行文件路径后,死活到点不执行. 任务设置如下: 15 16 * * * /root/ ...

  4. WINDOWS-基础:WINDOWS常用API

    1.窗口信息 //MS 为我们提供了打开特定桌面和枚举桌面窗口的函数. hDesk=OpenDesktop(lpszDesktop,,FALSE,DESKTOP_ENUMERATE); //打开我们默 ...

  5. python基本排序算法(一)

    一.冒泡排序 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”. 冒泡排序算法的原理如下: 比 ...

  6. 二. python函数与模块

    第四章.内置函数与装饰器详解 1.内置函数补充1 注:红色圆圈:必会:  紫红色方框:熟练:   绿色:了解 callable() 判断函数是否可以被调用执行 def f1(): pass f1() ...

  7. 51nod 1135 原根 (数论)

    题目链接 建议与上一篇欧拉函数介绍结合食用. 知识点:1.阶:a和模m互质,使a^d≡1(mod m)成立的最小正整数d称为a对模m的阶(指数)   例如: 2^2≡1(mod3),2对模3的阶为2; ...

  8. ajax动态刷新下拉框

    动态post,避免直接给页面传输大量数据 /** * ajax通过商品刷新供应商 * by_kangyx * @throws IOException */ @RequestMapping(params ...

  9. python基础学习笔记——初识函数

    什么是函数 我们目前为止,已经可以完成一些软件的基本功能了,那么我们来完成这样一个功能:约x 1 2 3 4 5 pint("拿出手机") print("打开陌陌&quo ...

  10. redis安装与安全设置

    redis Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件 yum安装redis 1.yum安装   #前提得配置好阿里云yum源,epel源 # ...