MYSQL 存储过程通用
返回随机时间 函数
CREATE FUNCTION `milan_get_rand_time`(type VARCHAR(50)) RETURNS varchar(20) CHARSET utf8
BEGIN
DECLARE _day INT DEFAULT (FLOOR(RAND() * 60)); -- 随机天数 60天以内随机天数
DECLARE _hour INT DEFAULT (FLOOR(RAND() * 24)); -- 随机小时
DECLARE _minute INT DEFAULT (FLOOR(RAND() * 60));-- 随机分
DECLARE _second INT DEFAULT (FLOOR(RAND() * 60));-- 随机秒
DECLARE _myday VARCHAR(20);
IF type = 'before' THEN
set _day =_day;
ELSEIF type='after' THEN
SET _day =-1*_day;
ELSE
SET _day=0;
END IF; SET _myday = DATE_FORMAT(DATE_SUB(NOW(),INTERVAL _day DAY) ,'%Y-%m-%d'); -- 获取一个随机的日期
-- SET _myday = DATE_SUB(CURRENT_DATE(),INTERVAL _day DAY); -- 获取一个随机的日期
SET _myday = CONCAT(_myday,' ',LPAD(_hour,2,0),':',LPAD(_minute,2,0),':',LPAD(_second,2,0)); -- 在这个日期上加上时分秒
RETURN _myday;
END
带参数的函数
CREATE FUNCTION `delete_t_mer_info_group`(`_uid` int) RETURNS int(11)
BEGIN
#Routine body goes here...
DELETE from t_mer where uid=_uid;
DELETE from t_mer_info where uid=_uid;
DELETE from t_mer_group where member_uid =_uid or leader_uid=_uid;
RETURN 0; END
游标test
CREATE PROCEDURE `curtest`()
BEGIN
DECLARE _uid INT;
DECLARE _miaohao VARCHAR(20);
DECLARE done INT DEFAULT FALSE;
-- 遍历数据结束标志
DECLARE cur CURSOR FOR SELECT uid,miaohao FROM tmm_tmp_testaccount ;
-- 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
read_loop: LOOP
FETCH cur INTO _uid,_miaohao;
IF done THEN
LEAVE read_loop;
END IF;
UPDATE tmm_tmp_testaccount set `desc` = NULL where uid =_uid;
END LOOP;
CLOSE cur;
END
while循环
CREATE PROCEDURE `add_t_statis_member_1`(in _member_uid int,in _leader_uid int,in _dayCount int)
BEGIN DECLARE _count INT;
DECLARE _statis_date VARCHAR(20); DELETE FROM t_statis_member_1 where member_uid = _member_uid; SET _count = _dayCount; WHILE _count > 0 DO
set _statis_date = date_format(DATE_SUB(NOW(),INTERVAL +_count DAY), '%Y-%m-%d'); insert into t_statis_member_1(statis_date,member_uid,new_platform_user,new_game_user,active_user,pay_user,total_pay,total_order_price,leader_uid)
values
(
_statis_date,/*日期_varchar(16)_NO_statis_date*/
_member_uid,/*组员uid_bigint(20)_YES_member_uid*/
'',/*新增注册_int(11) unsigned zerofill_NO_new_platform_user*/
'',/*新增游戏注册_int(11)_NO_new_game_user*/
'',/*活跃人数_int(11)_NO_active_user*/
'',/*付费人数_int(11)_NO_pay_user*/
'5.01',/*总付费金额_decimal(10,2)_NO_total_pay*/
'6.01',/*总订单金额_decimal(10,2)_NO_total_order_price*/
_leader_uid /*所属组长uid_bigint(20)_YES_leader_uid*/); set _count =_count-1; END WHILE; select * from t_statis_member_1 where member_uid = _member_uid; END
拼接时间时分秒
CONCAT(_myday,' ',LPAD(_hour,2,0),':',LPAD(_minute,2,0),':',LPAD(_second,2,0)); -- 在这个日期上加上时分秒
生成随机ID
CREATE FUNCTION `get_id`() RETURNS bigint(20)
BEGIN
#Routine body goes here... RETURN CONCAT(UNIX_TIMESTAMP(NOW())-FLOOR(RAND() * 10000),FLOOR(RAND() * 10));
END
MYSQL 存储过程通用的更多相关文章
- J2EE之oracle、mysql存储过程调用
最近几天在研究hibernate.JPA对存储过程的调用,主要是针对有返回结果集的存储过程的调用方法,个人感觉存储过程是个好东西,虽然说heibernate对数据访问封装的比较不错,再加上他的缓存机制 ...
- 《MySQL 存储过程编程》-读书笔记
本书结构: 第一部分:存储编程基础 第1章:存储过程程序基础 第2章:MySQL存储编程指南 第3章:语言基础 第4章:语句块 第5章:在存储程序中使用SQL 第一章:MySQL存储程序介绍 存储程序 ...
- MySQL存储过程学习笔记
MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣.MySQL 5.0终于开始支持存储过程了. MySQL的关键字大小写通用.该学习笔记对关键字使用大写:变量名,表名使用小写. ...
- MySQL 存储过程错误处理
MySQL 存储过程错误处理 如何使用MySQL处理程序来处理在存储过程中遇到的异常或错误. 当存储过程中发生错误时,重要的是适当处理它,例如:继续或退出当前代码块的执行,并发出有意义的错误消息. ...
- C#操作SqlServer MySql Oracle通用帮助类
C#操作SqlServer MySql Oracle通用帮助类 [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系 ...
- mysql 存储过程、视图---创建、调用、删除
之前一直用的是Sql Server数据库,最近偶然机会接触到mysql.这里总结了关于mysql 存储过程.视图的“创建.调用.删除”示例 ============================== ...
- MySQL存储过程(转)
一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b" ...
- MySql存储过程
MySQL 存储过程 ```sql CREATE PROCEDURE myprocedure (IN para01 INTEGER) BEGIN DECLARE var01 CHAR(10); IF ...
- mysql存储过程和存储函数
mysql存储过程和存储函数 存数函数代码示例: DROP PROCEDURE IF EXISTS calc_ci_day_suc_rate; delimiter // CREATE FUNCTION ...
随机推荐
- java定时器无法自动注入的问题解析(原来Spring定时器可以这样注入service)
近些日子在做一个项目,在项目中需要用到spring的定时任务,但是在操作数据库的时候发现总是不能正确的进行数据的插入,经过查看才发现:是因为service层不能够通过普通的方法注入到action,所以 ...
- 【Python】matplotlib 双y轴绘制及合并图例
1.双y轴绘制 关键函数:twinx() 问题在于此时图例会有两个. # -*- coding: utf-8 -*- import numpy as np import matplotlib.pypl ...
- (经典)直接插入排序based on 二分查找
#include<stdio.h> // 查找第一个大于key的元素,成功则返回该元素的下标,否则返回数组末元素的下一位 int findFirstLarger(int A[],int n ...
- Oracle SEQUENCE 具体说明
ORACLE SEQUENCE ORACLE没有自增数据类型,如需生成业务无关的主键列或惟一约束列,能够用sequence序列实现. CREATE SEQUENCE语句及參数介绍: 创建序 ...
- 结构化日志类库 ---- Serilog库
在过去的几年中,结构化日志已经大受欢迎.而Serilog是 .NET 中最著名的结构化日志类库 ,我们提供了这份的精简指南来帮助你快速了解并运用它. 0. 内容 设定目标 认识Serilog 事件和级 ...
- 增强型for和Iterator学习
1,增强for和对于非集合类(没有实现 Iterable接口)的数组遍历效果一样 2,对于集合类,就是隐式调用迭代器 iterator的遍历,各有各个场合 3,对于arraylist来所,由于数据结构 ...
- 桶排序与快速排序算法结合-python实现
#-*- coding: UTF-8 -*- import numpy as np from QuickSort import QuickSort def BucketSort(a, n): barr ...
- GridView 绑定数据的常用指定格式。
形式 语法 结果 注释 数字 {0:N2} 12.36 数字 {0:N0} 13 货币 {0:c2} $12.36 货币 {0:c4} $12.3656 货币 "¥{0:N2 ...
- tcpdump查看某个端口数据
tcpdump -i eth0 -nn -A port tcpdump src
- to_char 函数将小数点舍掉的解决办法
to_char(val,'0.9') 9 代表一个数字 0 强制显示0 $ 放置一个$符 L 放置一个浮动本地货币符 . 显示小数点 , 显示千位指示符