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 ...
随机推荐
- vs自带iis局域网调试
http://www.cnblogs.com/liluping860122/p/4685564.html
- CTabCtrl的使用
1.在主窗口中定义一个CtabCtrl,添加变量m_tabctrl; 2.添加两个子窗口IDD_ONE_DIALOG,IDD_TWO_DIALOG(新建对话框,然后双击界面添加头文件和cpp),属性为 ...
- ViewState 视图状态对象实例
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DemoViewState. ...
- HTML-3月20日课堂总结
1.图片热点 2.表单制作 3.课后作业 1.图片热点 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- MySQL(二) —— 数据类型与操作数据表
数据类型 数据类型是指列.存储过程参数.表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型. 整型:TYNINT(-2^7 ~ 2^7-1); SMALLINT(-2^15 ~ ...
- Know How And When To Use System.Message_Level To Control Messages In Oracle Forms
SYSTEM.MESSAGE_LEVEL is used to control the messages that end users see when they use the Oracle For ...
- js跨域及解决方案
本文出自:http://www.cnblogs.com/oneword/archive/2012/12/03/2799443.html 1.什么是跨域 我们经常会在页面上使用ajax请求访问其他服务器 ...
- [POJ1222]EXTENDED LIGHTS OUT(高斯消元,异或方程组)
题目链接:http://poj.org/problem?id=1222 题意:开关是四连通的,每按一个就会翻转自己以及附近的四个格(假如有).问需要翻转几个,使他们都变成关. 把每一个灯看作一个未知量 ...
- C#窗体->>随机四则运算
用户需求: 程序能接收用户输入的整数答案,并判断对错程序结束时,统计出答对.答错的题目数量.补充说明:0——10的整数是随机生成的用户可以选择四则运算中的一种用户可以结束程序的运行,并显示统计结果.在 ...
- wince下的CPU和内存占用率计算
#include <Windows.h> DWORD Caculation_CPU(LPVOID lpVoid) { MEMORYSTATUS MemoryInfo; DWORD Perc ...