MySql存储过程简单实例:

/********************* 创建表 *****************************/

delimiter //

DROP TABLE if exists test //

CREATE TABLE test(

id int(11) NULL

) //

/********************** 最简单的一个存储过程 **********************/

drop procedure if exists sp//

CREATE PROCEDURE sp() select 1 //

call sp()//

/********************* 带输入参数的存储过程  *******************/

drop procedure if exists sp1 //

create procedure sp1(in p int)

comment 'insert into a int value'

begin

/* 定义一个整形变量 */

declare v1 int;

/* 将输入参数的值赋给变量 */

set v1 = p;

/* 执行插入操作 */

insert into test(id) values(v1);

end

//

/* 调用这个存储过程  */

call sp1(1)//

/* 去数据库查看调用之后的结果 */

select * from test//

/****************** 带输出参数的存储过程 ************************/

drop procedure if exists sp2 //

create procedure sp2(out p int)

/*这里的DETERMINISTIC子句表示输入和输出的值都是确定的,不会再改变.我一同事说目前mysql并没有实现该功能,因此加不加都是NOT

DETERMINISTIC的*/

DETERMINISTIC

begin

select max(id) into p from test;

end

//

/* 调用该存储过程,注意:输出参数必须是一个带@符号的变量 */

call sp2(@pv)//

/* 查询刚刚在存储过程中使用到的变量 */

select @pv//

/******************** 带输入和输出参数的存储过程 ***********************/

drop procedure if exists sp3 //

create procedure sp3(in p1 int , out p2 int)

begin

if p1 = 1 then

/* 用@符号加变量名的方式定义一个变量,与declare类似 */

set @v = 10;

else

set @v = 20;

end if;

/* 语句体内可以执行多条sql,但必须以分号分隔 */

insert into test(id) values(@v);

select max(id) into p2 from test;

end

//

/* 调用该存储过程,注意:输入参数是一个值,而输出参数则必须是一个带@符号的变量 */

call sp3(1,@ret)//

select @ret//

/***************** 既做输入又做输出参数的存储过程 ***************************************/

drop procedure if exists sp4 //

create procedure sp4(inout p4 int)

begin

if p4 = 4 then

set @pg = 400;

else

set @pg = 500;

end if;

select @pg;

end//

call sp4(@pp)//

/* 这里需要先设置一个已赋值的变量,然后再作为参数传入 */

set @pp = 4//

call sp4(@pp)//

出处:http://www.cnblogs.com/zhuawang/p/4185302.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29119536/viewspace-1676417/,如需转载,请注明出处,否则将追究法律责任。

mysql简单的存储过程实例_mysql存储过程简单实例相关推荐

  1. mysql 创建存储过程语法_mysql存储过程语法及实例

    存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 c ...

  2. mysql的存储过程原理_mysql存储过程原理与用法详解

    本文实例讲述了Mysql存储过程原理与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是存储过程 存储过程的创建 存储过程的使用 查看存储过程 修改存储过程 删除存储过程 首发日期:2018- ...

  3. mysql 存过 if语句_mysql存储过程 if 语句

    MySql的存储过程 存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存 ...

  4. mysql存储过程调试_MYSQL存储过程调试过程

    mysql不像oracle有plsqldevelper工具用来调试存储过程,所以有几种简单的方式追踪执行过程: 1.用一张临时表,记录调试过程: 2.直接在存储过程中,增加select xxx,在控制 ...

  5. mysql 存储过程 定时_MySQL存储过程和定时任务

    什么是存储过程 存储例程是存储在数据库服务器上的一组sql语句,这些语句通过在查询中调用指定的名称来执行. 存储过程是存储在数据库中的一组SQL语句 存储过程是mysql中定义的方法 可以通过调用方法 ...

  6. mysql 存储过程 控制台_mysql 存储过程 调试

    mysql存储过程之游标遍历数据表 原文:mysql存储过程之游标遍历数据表 今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环 ...

  7. php mysql存储过程写法_mysql存储过程写法

    都说不懂数据库的程序员不是合格的程序员,那么你知道MySQL存储过程应该怎么写吗? MySQL存储过程写法 可以使用 CREATE PROCEDURE 语句创建存储过程. 数据库存储过程语法格式如下: ...

  8. mysql存储过参数拼接_mysql 存储过程动态拼接sql并执行赋值

    CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`(in _xnb varchar(50)) BEGIN ## 定义变量 DECLARE _num FL ...

  9. mysql 存储过程求和_MySQL - 存储过程和函数

    MySQL - 存储过程和函数 创建和调用存储过程 -- 创建stu_group()存储过程,封装 分组查询总成绩,并按照总成绩升序排序的功能 -- 注意: DELIMITER 必须写在一行的最前面, ...

  10. mysql存储过程触发器_MySQL存储过程及触发器

    一.存储过程 存储过程的基本格式如下: -- 声明结束符 -- 创建存储过程 DELIMITER $ -- 声明存储过程的结束符 CREATE PROCEDURE pro_test() --存储过程名 ...

最新文章

  1. C#进行单击操作、单击位置记录、捕获全局左右键单击事件
  2. 关于重载函数的一些学习
  3. 更改oracle 端口,Oracle数据库11G R2 修改服务端口
  4. HTML+CSS+JS实现 ❤️three 3D铅笔绘图工具特效❤️
  5. Python练习:阶乘累计求和
  6. Android 自定义漂亮的圆形进度条
  7. php前台提交后台刷新,用js post数据后到后台,处理后如何实现前台页面刷新?...
  8. percona-toolkit工具包的安装和使用
  9. javaweb 获取服务器整个文件夹下的文件_详细得不要不要的 JavaWeb快速入门,值得收藏!...
  10. 计算机网络习题(参考)
  11. 樊登读书分享ppt_最后一波 | 24份樊登亲手撰写PPT免费送
  12. oracle数据库报12514,Oracle数据库ORA-12514错误的解决办法
  13. WinForm实现Loading等待界面
  14. matlab 此上下文中不允许函数定义,错误: 此上下文中不允许函数定义。怎么办
  15. 2018 拼多多校招贪心算法题
  16. 吱口令代付|淘宝天猫教程|找人代付|淘宝代付源码
  17. 转:Excel Web Access Web Part
  18. 20220417在WIN10下给串口板FT232RL装驱动的步骤
  19. linux可以运行Windows程序吗,如何Linux系统上运行Windows应用程序(7)
  20. 浅记《网络科学导论》知识点

热门文章

  1. 安装EXSI遇到No Network Adapters的解决方案
  2. 【Python】Python库之Web信息提取
  3. C#LeetCode刷题之#824-山羊拉丁文​​​​​​​(Goat Latin)
  4. 当我谈Flask的时候我在谈些什么
  5. 将React Native升级到最新版本的最简单方法
  6. 谷歌聊天机器人api_如何编写针对Google地图等网络应用量身定制的聊天机器人
  7. 重构javascript_JavaScript代码清理:如何重构以使用类
  8. android如何兴起_情感设计的必要兴起
  9. ubuntu16.04源码安装node
  10. Python爬虫的基本原理