当前位置:首页 » 存储配置 » mysql存储过程代码

mysql存储过程代码

发布时间: 2022-09-05 11:31:50

① Mysql编写一个存储过程

1、delimiter // ,声明分隔符:DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码(这里如果不懂的话,你可以通过试错的方法来理解)。
2、编写存储过程的格式:CREATE PROCEDURE([[IN |OUT |INOUT ]参数名数据类形...])
例子:
1)create procere proc1(out s int) // 只有输出
2)create procere proc2(in p_in bigint) // 只有输入
3)create procere proc15() // 没有输入与输出
4)create procere demo_multi_param(in id bigint,in name varchar(32),out c int) //多输入与输出
3、过程体的开始与结束使用BEGIN与END进行标识。
4、select count (*) into s from student; // 过程体,一系列的逻辑语句,sql语句
5、delimiter ; 用完了之后要把分隔符还原。

② 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
int
;
--
数学
declare
done
int;
--
定义游标
DECLARE
rs_cursor
CURSOR
FOR
SELECT
username,chinese,math
from
userInfo
where
datediff(createDate,
date_day)=0;
DECLARE
CONTINUE
HANDLER
FOR
NOT
FOUND
SET
done=1;
--
获取昨天的日期
if
date_day
is
null
then

set
date_day
=
date_add(now(),interval
-1
day);
end
if;
open
rs_cursor;
cursor_loop:loop

FETCH
rs_cursor
into
_userName,
_chinese,
_math;
--
取数据

if
done=1
then

leave
cursor_loop;

end
if;
--
更新表
update
infoSum
set
total=_chinese+_math
where
UserName=_userName;
end
loop
cursor_loop;
close
rs_cursor;

END$$
DELIMITER
;

③ 怎么写mysql存储过程,并用php调用它

  • 实现原理

  1. 首先,需要知道怎么写mysql存储过程,了解mysq存储过程语言,

  2. 其次,使用mysql工具创建存储过程。

  3. 最后,通过mysql_query()函数执行mysql变量的设置和mysql存储过程及返回值。

  • 具体代码如下:

  1. mysql存储过程代码

createprocerepro_name(user_idint)
begin
.........
end

2. PHP代码

$host="localhost";
$user="root";
$password="232412";
$db="user_db";
$dblink=mysql_connect($host,$user,$password)ordie("can'tconnecttomysql");
mysql_select_db($db,$dblink)ordie("can'tselectuser_db");
$user_id=1;
$res=mysql_query("set@a=$user_id",$dblink);
$res=mysql_query("callpro_name(@a)",$dblink);

④ mysql的存储过程怎么写

DELIMITER $$

USE `test`$$

DROP PROCEDURE IF EXISTS `proc_now_time`$$

CREATE DEFINER=`root`@`%` PROCEDURE `proc_now_time`(OUT `now_time` TEXT)
BEGIN
#Routine body goes here...
DECLARE
now_time TEXT;
select name ,age from test1,test2 INTO now_time;
SELECT now_time;
END$$

DELIMITER ;

⑤ mysql一段存储过程代码,一直提示有语法错误,高分请教,可以追加分数

CREATEPROCEDUREtest_delete(INi_idINT,OUTo_retINT)
BEGIN
,NOTFOUND,SQLEXCEPTIONseto_ret=0;--后面都没有异常判断语句,这句话在存储中没有用到
deletefrommemberwheremember_id=i_id;
seto_ret=1;
END;

⑥ php调用mysql存储过程,如何实现。 我的代码如下:

mysql存储过程返回2个资源,第一个是执行信息,第二个是存储过程返回结果。

mysql_*系列函数无法获取超过1个资源,需使用mysqli或PDO代替。


PDO:

$stmt=$db->prepare("CALLpro_rb_save(?,?,@return_msg);");
$stmt->bindParam(1,$a);
$stmt->bindParam(2,$b);
$stmt->execute();
$outputArray=$db->query("select@return_msg")->fetch(PDO::FETCH_ASSOC);

var_export($return_msg);

⑦ mysql存储过程

MySQL存储过程创建的格式如下:
CREATE PROCEDURE 过程名 ([过程参数[,...]])[特性 ...] 过程体
举例代码如下:

CREATE PROCEDURE proc1(OUT s int) BEGIN SELECT COUNT(*) INTO s FROM user; END

存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。
过程体的开始与结束使用BEGIN与END进行标识。
注意:MySQL在5.0以前并不支持存储过程

java调用MySQL存储过程

java代码:

Class.forName("com.mysql.jdbc.Driver");

Connectioncon=DriverManager

.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=111111");

Stringsql="{callsel(?)}";

CallableStatementcs=(CallableStatement)con.prepareCall(sql);

cs.execute();

Stringname=cs.getString(1);

System.out.println(name);

创建存储过程代码:

dropprocereifexistssel;

createproceresel(outname1varchar(225))

begin

;

end

输出结果:

⑨ 怎么在mysql中查询已建立的存储过程

1、首先先创建一个存储过程,代码如图,存储过程主要的功能是为表JingYan插入新的数据。

热点内容
定压补水装置如何配置 发布:2025-01-10 18:12:34 浏览:429
安卓是华为的什么 发布:2025-01-10 18:12:27 浏览:539
pythonsetget 发布:2025-01-10 17:53:12 浏览:852
买脚本多少钱 发布:2025-01-10 17:52:34 浏览:934
文件夹万能解密器破解版 发布:2025-01-10 17:48:12 浏览:463
荣耀v30跟荣耀50哪个配置高 发布:2025-01-10 17:43:00 浏览:239
php发布系统 发布:2025-01-10 17:34:17 浏览:366
dnf刷疲劳脚本 发布:2025-01-10 17:33:39 浏览:350
海豚php框架 发布:2025-01-10 17:30:27 浏览:227
数据聚合算法 发布:2025-01-10 17:30:27 浏览:987