-- 查看存储过程
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的更多相关文章

  1. mysql存储过程demo

    #删除存储过程 -- drop procedure if exists add_test; CREATE PROCEDURE add_test() begin #定义变量 declare client ...

  2. Mysql存储过程语法

    一口气弄完了! 一.条件语句if-then-else: create procedure demo_1(in param int) begin declare var int; ; then inse ...

  3. MySql 存储过程 光标只循环一次

    [1]MqSql 存储过程 光标只循环一次 针对MySql存储过程,光标只循环一次就退出的场景,可能原因分析: (1)存储过程有问题(仔细检查语法.控制变量.条件等等) (2)保证存储过程正确.调用过 ...

  4. MySQL存储过程使用实例详解

    本文介绍关于在MySQL存储过程游标使用实例,包括简单游标使用与游标循环跳出等方法 例1.一个简单存储过程游标实例 DROP PROCEDURE IF EXISTS getUserInfo $$CRE ...

  5. Mysql存储过程、索引

    sql语句执行顺序: from--->where--->group by--->having--->计算所有的表达式--->order by--->select 输 ...

  6. mysql 存储过程 函数 触发器

    mysql存储过程与函数 存储过程下载  demo mysql> delimiter // -- 这里//为修改默认分隔符: mysql> CREATE PROCEDURE simplep ...

  7. MySQL存储过程(转)

    一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b" ...

  8. MySql存储过程

    MySQL 存储过程 ```sql CREATE PROCEDURE myprocedure (IN para01 INTEGER) BEGIN DECLARE var01 CHAR(10); IF ...

  9. mysql存储过程和存储函数

    mysql存储过程和存储函数 存数函数代码示例: DROP PROCEDURE IF EXISTS calc_ci_day_suc_rate; delimiter // CREATE FUNCTION ...

随机推荐

  1. placeholder 解决UITextField中placeholder和text文本同时显示的问题

    TextField都使用了placeholder属性,但在代码中又设置了text属性,因此ViewController会同时显示placeholder文本和text文本. 这个问题让我彻底崩溃.按道理 ...

  2. Linux各发行版本简介

    简介 Linux 主要作为Linux发行版(通常被称为"distro")的一部分而使用.这些发行版由个人,松散组织的团队,以及商业机构和志愿者组织编写.它们通常包括了其他的系统软件 ...

  3. Codeforces 633B A Trivial Problem

    B. A Trivial Problem time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  4. 十一、Swing

    1.Swing常用窗体 (1)JFrame框架窗体 JFrame窗体是一个容器,是Swing程序中各组件的载体. 语法:JFrame jf = new JFrame(title); Container ...

  5. 协方差Covariance的表述推导

    今天想了一下关于概率论的一维数据期望.方差以及高维数据的矩阵表示,突然想到为什么在一维中 方差的表示为:V(x) = E((x-E(x))2) 而到了高维,这样的表述就成了协方差呢?V(X) = E( ...

  6. JavaWeb(一)

    Web应用程序开发是目前软件开发领域的三大方向之一. 静态网页与动态网页 静态网页 表现形式:网页的内容是固定的,不会更新: 使用的技术:HTML,CSS 动态网页 表现形式:网页中的内容通过程序动态 ...

  7. linux中mysql基本操作

    1.linux下启动mysql的命令: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql的命令: mys ...

  8. vb6.0安装程序制作图解教程

    如何制作vb安装程序,是在学习Vb6.0过程中比较常见的一个入门问题. 在此笔者介绍一个最简单的安装方法,就是用VB自带的打包程序进行打包,虽然比较普通,不过内部却有不少窍门,相信这一点知道的人可能不 ...

  9. SQL Server 字符串处理

    ) SET @str='AP-FQC-2014072300004' --获取指定字符第一次出现的位置 SELECT PATINDEX('%-%',@str) --返回:3 --获取指定字符第一次出现的 ...

  10. python_way ,day1 编译安装python3、基础及流程控制

    本节内容: 1,Python介绍发展史 2,安装 3,Hello World 4,程序 5,变量,字符编码 6,用户输入 7,模块初识 一.python介绍 python的创始人为吉多·范罗苏姆(Gu ...