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. idea Please specify commit message

    在idea中使用github来进行版本控制的时候, 当点击提交的时候遇到了这个问题 错误: Please specify commit message 解决方法: 在commit message中填写 ...

  2. sscanf函数详解

    #if 0 ,sscanf():从一个字符串中读进与指定格式相符的数据. ,sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源. ,关于正则表 ...

  3. hibernate4+spring3+struts2搭建框架实例

    1.所需要的JAR包 2.web.xml配置文件,这个和平时的配置是一样的 <?xml version="1.0" encoding="UTF-8"?&g ...

  4. Ecshop的积分商城-对不起,该商品库存不足,现在不能兑换

    1. 打开Ecshop积分商城文件 "根目录/exchange.php" 发现248行与289行都有库存不足时报错的提示代码: 248行:     /* 查询:检查兑换商品是否有库 ...

  5. (4)zabbix监控第一台服务器

    2. zabbix监控服务器 创建主机,选择模板以及录入基本信息,过一分钟左右,就可以看到cpu.内存.硬盘等等使用情况.本节以图文为主.by the way, zabbix中文翻译很烂,config ...

  6. DNS服务-了解篇

    简介 DNS是用来名字解析的,名字解析成IP地址,IP地址解析成名字,正反操作,有服务器端和客户端即 S/C DNS是应用层协议,基于UDP/53.TCP/53端口,缺一不可 分为正向解析和反向解析/ ...

  7. linux-ngnix服务(一)

    httpd MPM: prefork:进程模型,两级结构,主进程master负责生成子进程,每个子进程负责响应一个请求 worker:线程模型,三级结构,主进程master负责生成子进程,每个子进程负 ...

  8. android 之 View

    在进行游戏开发时,需要自定义各种控件和界面. 自定义View的使用: 绘制屏幕 刷新屏幕:后台数据发生了变化,需要开发人员自己刷新屏幕以显示最新数据 例子: MyView开发,绘制界面View内容: ...

  9. Disqus 升级到3.0以上版本的评论同步问题

    Disqus从2.*升级3.*时,Knowlege Base的文章不显示Disqus评论, 解决方法:在Disqus的Advanced Settings中勾选Render Comments JavaS ...

  10. NYOJ 745 首尾相连数组的最大子数组和

    首尾相连数组的最大子数组和 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首 ...