MySQL 存储过程简单使用

85 篇文章 0 订阅
16 篇文章 0 订阅

下面是存储过程的例子,删除给定球员参加的所有比赛:

mysql> delimiter $$  #将语句的结束符号从分号;临时改为两个$$(可以是自定义) mysql> CREATE PROCEDURE delete_matches(IN p_playerno INTEGER) -> BEGIN ->   DELETE FROM MATCHES -> WHERE playerno = p_playerno; -> END$$ Query OK, 0 rows affected (0.01 sec) mysql> delimiter;  #将语句的结束符号恢复为分号

解析:默认情况下,存储过程和默认数据库相关联,如果想指定存储过程创建在某个特定的数据库下,那么在过程名前面加数据库名做前缀。 在定义过程时,使用 DELIMITER $$ 命令将语句的结束符号从分号 ; 临时改为两个 $$,使得过程体中使用的分号被直接传递到服务器,而不会被客户端(如mysql)解释。

调用存储过程:

call sp_name[(传参)];

MySQL存储过程的查询

select name from mysql.proc where db='数据库名';

或者

selectroutine_name from information_schema.routines where routine_schema='数据库名';

或者

show procedure status where db='数据库名';

=============================================

操作举例:

-- 查询存储过程

elect name from mysql.proc where db='accl_ne_uc_ft2' and `type` = 'PROCEDURE' ;

-- 删除存储过程

DROP PROCEDURE zqtest


--- 100000000
-- 100001000


-- 创建存储过程
DROP PROCEDURE IF EXISTS zqtest;
delimiter $$$          -- 声明语句结束符,可以自定义
create procedure zqtest()      -- 声明存储过程
begin   -- 存储过程开始
declare i int default 0;
set i=100000000;
start transaction;
while i<100001000 do

-- 要执行的sql语句
   insert into `um_address` (`id`, `ada`) values(i,'54864490')  


set i=i+1;
end while;
commit;
end  -- 存储过程结束
$$$


-- 执行存储过程
call zqtest();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值