mysql 存储过程 demo
-- 查看存储过程
SHOW PROCEDURE STATUS; -- 显示pro存储过程的详细信息
SHOW CREATE PROCEDURE pro; -- 删除pro存储过程
DROP PROCEDURE IF EXISTS pro; -- 创建简单的存储过程
DELIMITER //
DROP PROCEDURE IF EXISTS pro//
CREATE PROCEDURE pro()
BEGIN
SELECT 1;
END//
DELIMITER ; -- 调用存储过程
CALL pro(); -- 创建带输入参数的存储过程
DELIMITER //
DROP PROCEDURE IF EXISTS pro//
CREATE PROCEDURE postVisitor(IN input INT)
-- 批量插入visitor数据
BEGIN
-- 声明一个int类型的变量
DECLARE i INT;
SET i = 0;
WHILE i < input DO
INSERT INTO visitor(hid,ecid,cid,uid,`name`,phone,photo,car_plate,`status`,euid,appointment_time,visit_time,create_time)
VALUES(1,1,1,1,CONCAT('L',i),CONCAT('',i),'http://7xtge5.com2.z0.glb.clouddn.com/logo.png',CONCAT('京A-8251',i),IF(i%2=0,0,1),12,CURDATE(),NULL,NOW());
SET i = i + 1;
END WHILE;
END//
DELIMITER ;
CALL pro(10);
-- 创建带输出参数的存储过程
DELIMITER //
DROP PROCEDURE IF EXISTS countVisitor
CREATE PROCEDURE countVisitor(OUT total INT)
BEGIN
SELECT MAX(euid) INTO total FROM visitor;
END//
DELIMITER ;
-- 调用该存储过程,注意:输出参数必须是一个带@符号的变量
CALL countVisitor(@total);
SELECT @total; -- 创建带输入和输出参数的存储过程
DELIMITER //
DROP PROCEDURE IF EXISTS pro3//
CREATE PROCEDURE pro3(IN input INT,OUT output char(2))
BEGIN
IF input%2 = 0 THEN
-- 用@符号加变量名的方式定义一个变量,与declare类似
SET @v = "偶数";
ELSE
SET @v = "奇数";
END IF;
-- 语句体内可以执行多条sql,但必须以分号分隔
SET output = @v;
END //
DELIMITER ;
-- 调用该存储过程,注意:输入参数是一个值,而输出参数则必须是一个带@符号的变量
CALL pro3(1,@v);
SELECT @v; -- 创建既做输入又做输出参数的存储过程
DELIMITER //
DROP PROCEDURE IF EXISTS sp4 //
CREATE PROCEDURE sp4(INOUT p4 INT)
BEGIN
IF p4 = 4 THEN
SET p4 = 400;
ELSE
SET p4 = 500;
END IF;
END//
DELIMITER ;
CALL sp4(@pp);
SELECT @pp;
-- 这里需要先设置一个已赋值的变量,然后再作为参数传入
SET @pp = 4;
CALL sp4(@pp);
SELECT @pp; -- 去掉unique key 约束
ALTER TABLE user_auth DROP INDEX `username`; -- IF(expr1,expr2,expr3)
SELECT u.id,IF(u.status = 1,"启用","禁用") AS statusStr
FROM estate_user_doormach AS u; -- limit offset
SELECT aub.id
FROM app_user_basic AS aub
ORDER BY aub.id ASC
LIMIT 3 OFFSET 0; -- 不知道什么鬼
SELECT DATE_ADD(CURDATE(),INTERVAL -DAY(CURDATE())+1 DAY);
-- 级联插入表数据id
DELIMITER //
DROP PROCEDURE IF EXISTS insertNode//
CREATE PROCEDURE insertNode(IN input INT)
BEGIN
DECLARE i INT;
DECLARE id INT;
SET i = 0;
WHILE i < input DO
INSERT INTO a(va) VALUES(i);
SELECT LAST_INSERT_ID() INTO id;
INSERT INTO b(id,va) VALUES(id,i+10);
SET i = i + 1;
END WHILE;
END //
DELIMITER ; CALL insertNode(2);
mysql 存储过程 demo的更多相关文章
- mysql存储过程demo
#删除存储过程 -- drop procedure if exists add_test; CREATE PROCEDURE add_test() begin #定义变量 declare client ...
- Mysql存储过程语法
一口气弄完了! 一.条件语句if-then-else: create procedure demo_1(in param int) begin declare var int; ; then inse ...
- MySql 存储过程 光标只循环一次
[1]MqSql 存储过程 光标只循环一次 针对MySql存储过程,光标只循环一次就退出的场景,可能原因分析: (1)存储过程有问题(仔细检查语法.控制变量.条件等等) (2)保证存储过程正确.调用过 ...
- MySQL存储过程使用实例详解
本文介绍关于在MySQL存储过程游标使用实例,包括简单游标使用与游标循环跳出等方法 例1.一个简单存储过程游标实例 DROP PROCEDURE IF EXISTS getUserInfo $$CRE ...
- Mysql存储过程、索引
sql语句执行顺序: from--->where--->group by--->having--->计算所有的表达式--->order by--->select 输 ...
- mysql 存储过程 函数 触发器
mysql存储过程与函数 存储过程下载 demo mysql> delimiter // -- 这里//为修改默认分隔符: mysql> CREATE PROCEDURE simplep ...
- 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 ...
随机推荐
- 常用PDF文档开发库
C++库: 1,PDF类库 PoDoFo http://podofo.sourceforge.net/ PoDoFo 是一个用来操作 PDF 文件格式的 C++ 类库.它还包含一些小工具用来解析 ...
- Python3基础 print 中使用+号,连接两个字符串
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- oracle数据库导入导出dmp文件oracle命令
在控制台下导入imp scott/密码@orcl file=文件路径 full=Y 导出 整个数据库TEST 用户名system 密码1234 exp system/1234@TEST file=文 ...
- BZOJ 3564 信号增幅仪
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3564 题意:给出平面上n个点,画出一个椭圆,椭圆的长轴是短轴的p倍,且长轴的方向为x轴逆时 ...
- CodeForces 496B Secret Combination
Secret Combination Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u ...
- js 定位到某个锚点
js 定位到某个锚点 html页面内可以设置锚点,锚点定义 <a name="firstAnchor">&nsbp;</a> 锚点使用 <a ...
- 机器学习——SVM详解(标准形式,对偶形式,Kernel及Soft Margin)
(写在前面:机器学习入行快2年了,多多少少用过一些算法,但由于敲公式太过浪费时间,所以一直搁置了开一个机器学习系列的博客.但是现在毕竟是电子化的时代,也不可能每时每刻都带着自己的记事本.如果可以掏出手 ...
- SQL Server 字符串处理
) SET @str='AP-FQC-2014072300004' --获取指定字符第一次出现的位置 SELECT PATINDEX('%-%',@str) --返回:3 --获取指定字符第一次出现的 ...
- 用Hbase存储Log4j日志数据:HbaseAppender
业务需求: 需求很简单,就是把多个系统的日志数据统一存储到Hbase数据库中,方便统一查看和监控. 解决思路: 写针对Hbase存储的Log4j Appender,有一个简单的日志储存策略,把Log4 ...
- 2013 Multi-University Training Contest 9
HDU-4687 Boke and Tsukkomi 题意:给定一个简单图,询问哪些边如果选择的话会使得最大的连边数减少. 解法:套用一般图的最大匹配算法(带花树)先算出最大匹配数,然后枚举一条边被选 ...