Mysql 命令行下建立存储过程

建立存储过程的sql如下:
CREATE PROCEDURE  proc_variable ()
BEGIN
DECLARE dec_var_ VARCHAR(100);
DECLARE rep_num INT;
DECLARE dec_var CURSOR  for SELECT ID_  FROM ACT_RU_VARIABLE WHERE NAME_ = 'yjdqsj' GROUP BY EXECUTION_ID_ HAVING COUNT(NAME_) >1;
OPEN dec_var;
REPEAT
FETCH dec_var INTO dec_var_;
DELETE FROM ACT_RU_VARIABLE WHERE ID_ = dec_var_;
UNTIL rep_num END REPEAT;
CLOSE dec_var;
end;
如果把上面的语句直接执行的话,遇到第一个‘;'就结束了,然后剩下的都会报错。原因是默认mysql命令结束符是分号,需要修改结束符才可以执行。
mysql(root@localhost:jjsworkflow)>delimiter //    #修改命令终止符为//(random)
mysql(root@localhost:jjsworkflow)>CREATE PROCEDURE proc_variable ()
-> BEGIN
-> DECLARE dec_var_ VARCHAR(100);
-> DECLARE rep_num INT;
-> DECLARE dec_var CURSOR for SELECT ID_ FROM ACT_RU_VARIABLE WHERE NAME_ = 'yjdqsj' GROUP BY EXECUTION_ID_ HAVING COUNT(NAME_) >1;
-> OPEN dec_var;
-> REPEAT
-> FETCH dec_var INTO dec_var_;
-> DELETE FROM ACT_RU_VARIABLE WHERE ID_ = dec_var_;
-> UNTIL rep_num END REPEAT;
-> CLOSE dec_var;
-> end;
-> //    ##语句最后需要已上面声明的//结尾enter才能被执行
即把//’''//之间的内容封装到一起执行。此修改是session级别,退出后即失效

转载于:https://www.cnblogs.com/rockbes/p/3969786.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值