-- 查看存储过程
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. gd-jpeg: JPEG library reports unrecoverable error 解决办法

    Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecov ...

  2. for循环以及复杂if else 例题

    for循环语句 例一. 请输入一个整数,求1加到这个整数的和 例二 请从1到100 以内和7 有关的数字 例三,请设计一个游戏,前20关每关的分数是本身,21到30 是10分每关.31到40是20分每 ...

  3. 压缩和解压缩gz包

    gz是Linux和OSX中常见的压缩文件格式,下面是用java压缩和解压缩gz包的例子 public class GZIPcompress { public static void FileCompr ...

  4. 给table设置滚动条

    <div  scroll="no" style="width:1200px;overflow-x:scroll;overflow-y:hidden"> ...

  5. Zabbix监控交换机设置

    说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对交换机进行监控. 具体操作: 以下操作在被监控的交换机上进行,这里以Cisco交换机为例. 一.登录到Cisco交换机,开启snmp ...

  6. CodeForces 567C Geometric Progression

    Geometric Progression Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I ...

  7. Using SYSTEM.MOUSE_ITEM In Oracle Forms

    If the mouse is in an item, SYSTEM.MOUSE_ITEM represents the name of that item as a CHAR value.For e ...

  8. Oracle同义词学习

    oracle的同义词总结   从字面上理解就是别名的意思,和视图的功能类似.就是一种映射关系.   同义词拥有如下好处:   节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;   扩展的数 ...

  9. CUBRID学习笔记 40 使用net修改数据

    修改 connection.Open();     string queryString = "UPDATE nation set capital = 'X' where `code` = ...

  10. lazyload懒加载的使用

    1.引用<script src="http://a.tbcdn.cn/apps/baron/js/??lib/tmm/tmm.js,lib/lazyload/lazyload.js?2 ...