使用mysql存储过程,可以实现诸多的功能,下面将为您介绍一个mysql存储过程中使用游标的实例,希望对您能有所启迪。 DELIMITER $$ DROP PROCEDURE IF EXISTS getUserInfo $$ CREATE PROCEDURE getUserInfo(in date_day datetime) -- -- 实例 -- mysql存储过程名为:getUserInfo -- 参数为:date_day日期格式:2008-03-08 -- BEGIN declare _userName varchar(12); -- 用户名 declare _chinese int ; -- 语文 declare _math ...
DELIMITER $$ DROP PROCEDURE IF EXISTS getUserInfo $$ CREATE PROCEDURE getUserInfo(in date_day datetime) -- -- 实例 -- 存储过程名为:getUserInfo -- 参数为:date_day日期格式:2008-03-08 -- BEGIN declare _userName varchar(12); -- 用户名 declare _chinese int ; -- 语文 declare _math int ; -- 数学 declare done int; -- 定义游标 DECLARE rs_cursor CURSOR FOR SELECT username,chinese,math from userInf...
php访问mysql get_magic_quotes_gpc()函数,转义符号是否自动开启 addslashes()过滤输入数据 stripslashes()过滤输出数据 @ $db = new mysqli('localhost', 'bookorama', '123', 'books'); mysqli_connect_erroron() 连接数据库错误 $query= "select * from books where ".$searchtype." like '%".searchterm."'; $result = $db->query($query); /*$db是一个对象,函数query()是对象的一个属性。 ...
[code]mysql> mysql> mysql> delimiter $$ mysql> CREATE PROCEDURE myProc (in_customer_id INT) -> BEGIN -> -> DECLARE l_first_name VARCHAR(30); -> DECLARE l_id INT; -> DECLARE l_city VARCHAR(30); -> DECLARE l_department_count INT; -> DECLARE no_more_departments INT; -> -> DECLARE dept_csr CURSOR FOR -> SE...
[code]mysql> mysql> mysql> delimiter $$ mysql> CREATE PROCEDURE myProc (in_customer_id INT) -> BEGIN -> -> DECLARE l_first_name VARCHAR(30); -> DECLARE l_id INT; -> DECLARE l_city VARCHAR(30); -> DECLARE l_department_count INT; -> DECLARE no_more_departments INT; -> -> DECLARE dept_csr CURSOR FOR -> SE...
本帖最后由 justin033 于 2010-07-28 22:30 编辑 如下这存储过程的body部分,问题: 如何把游标cur_1查出来的表名table_name值循环作为游标cur_2中的SQL语句from的表名[code] begin declare l_str1 varchar(30) default ''; # table_name declare l_str2 int default 0; # user_id declare l_str3 int default 0; # count++ declare l_str4 int default 0; # router_id declare db_table varchar(3...
两个问题: 1、mysql的存储过程能使用数组作为输入参数、输出参数或输入输出参数吗? 2、mysql的存储过程能“包含不带游标的select语句”吗?比如: create procedure xyz() begin select * from terms; end 然后,call xyz();返回多行结果。这个书上说可以,但实际上总有语法错误,不知道是怎么回事?
在mysql存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体介绍了。
这几个循环语句的格式如下:
WHILE……DO……END WHILE
REPEAT……UNTIL END
REPEAT
LOOP……END LOOP
GOTO。
一.创建存储过程 1.基本语法: create procedure sp_name() begin ……… end 2.参数传递 二.调用存储过程 1.基本语法:call sp_name() 注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递 三.删除存储过程 1.基本语法: drop procedure sp_name// 2.注意事项 (1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 四.区块,条件,循环 1.区块定义,常用 begin …… end; 也可以给区块起别名,如:...
|