MySQL存储过程定义及调用

#MySQL存储过程

##最简单的存储过程
DROP PROCEDURE IF EXISTS sp1;
CREATE PROCEDURE sp1() COMMENT ‘最简单的存储过程‘
    SELECT 1;
##调用
CALL sp1 ();

##带输入参数的存储过程
DROP PROCEDURE IF EXISTS sp2;
CREATE PROCEDURE sp2(IN p INT) COMMENT ‘带输入参数的存储过程‘
    SELECT p;
##调用
CALL sp2(1);

#带输出参数的存储过程
DROP PROCEDURE IF EXISTS sp3;
CREATE PROCEDURE sp3(OUT q INT) COMMENT ‘带输出参数的存储过程‘
    SELECT 1 INTO q;
#调用
CALL sp3(@r);
SELECT @r;

#带输入和输出参数的存储过程
DROP PROCEDURE IF EXISTS sp4;
CREATE PROCEDURE sp4(IN p INT,OUT q INT) COMMENT ‘带输入和输出参数的存储过程‘
    SELECT p INTO q;
#调用
CALL sp4(1,@r);
SELECT @r;
时间: 2024-11-13 14:56:40

MySQL存储过程定义及调用的相关文章

MySQL存储过程定义中的特性(characteristic)的含义

MySQL的存储过程蛮啰嗦的,与MSSQL或者Oracle的存储过程相比,如果没有显式指定,他会隐含地指定一系列特性(characteristic)的默认值来创建存储过程 通常在使用图形界面工具进行存储过程编写的时候,图形界面工具会自动加上这部分内容比如用HeidiSQL创建存储过程的时候,会自动生成这些特性(characteristic)的默认值.但是这些特性究竟是干啥的,有什么影响,一直没有怎么弄清楚. LANGUAGE SQL存储过程语言,默认是sql,说明存储过程中使用的是sql语言编写

mysql存储过程和定时调用

1.创建存储过程 1 create procedure proc_name() 2 begin 3 sql; 4 end sql为定时值执行的代码,比如,定时向表里插入当前时间:INSERT into table(times) VALUES(NOW());:然后通过事件调度来定时执行该存储过程. 2.创建触发事件 1 create event if not exists event_name 2 on schedule every 30 second 3 on completion preser

mysql 存储过程--- 创建,调用,删除

DELIMITER //CREATE PROCEDURE p_addscore(nums INT,OUT retrows INT)BEGINDECLARE i INT DEFAULT 0;add_loop:LOOP IF i >= nums THEN LEAVE add_loop; END IF; INSERT s_musicscore (ssid,uid,score,ctime,stype) VALUES(17,UUID(),8,UNIX_TIMESTAMP(),1); SET i=i+1;E

mybatics 中调用mysql存储过程。

说起mybatics 框架,身边的java开发工程师们基本上都是耳熟能详. mybatics是apache的一个开源项目,前身为ibatics,2010年此项目由apache软件基金会迁移到了google code,mybatics的确是一款十分优秀的开源持久层框架,sql代码隔离封装.自动POJO映射.jdbc 动态sql---- mybatics的好处可以说出一箩筐,然而mybatics还有一个十分优秀的特性却往往被人忽略 ----那就是mybatics还支持存储过程的调用. 不熟悉存储过程

MySQL之存储过程创建和调用

一.MySQL存储过程_创建-调用 1.1存储过程:SQL中的"脚本"1.创建存储过程2.调用存储过程3.存储过程体4.语句标签块 二.MySQL存储过程简单介绍: 存储过程(Stored Procedure):提示:#SQL语句:先编译后执行 一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行. 优点(为什么要用存储过程?): ①将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调

mybatis调用mysql存储过程返回结果集

存储过程中经常需要返回结果集. Mysql 中直接用 select 即可返回结果集.而 oracle 则需要使用游标来返回结果集.这一点 Mysql 相对比较方便,如下代码即可实现输出结果集: 存储过程定义: DELIMITER $$ DROP procedure IF EXISTS pro_sql_data1 $$ CREATE procedure pro_sql_data1(in sear_name varchar(2000)) BEGIN if sear_name is not null

php调用mysql存储过程

MYSQL存储过程 原文链接:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html 一.存储过程简介(mysql5.0以上支持) 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以

PHP如何调用mysql存储过程

首先,在mysql中定义一个存储过程: delimiter // create procedure proc() begin  select * from users; end// 然后,在php中, //申明一个存储空间,用来存储过程执行返回数据,空间大小131072是128K define("MYSQL_CLIENT_RESULTS",131072);//如果不定义这个,后面的调用过程中会报错 $conn=mysql_connect("localhost",&q

mysql -- 存储过程中 declare 和 set 定义变量的区别

mysql存储过程中,定义变量有两种方式:1.使用set或select直接赋值,变量名以 @ 开头.例如:set @var=1;可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量. 2.以 DECLARE 关键字声明的变量,只能在存储过程中使用,称为存储过程变量,例如:DECLARE var1  INT DEFAULT 0;  主要用在存储过程中,或者是给存储传参数中. 两者的区别是:在调用存储过程时,以DECLARE声明的变量都会被初始化为 NULL.而会话变量(即@开头的变量)则不