mysql 生成完整的存储过程定义语句,mysql存储过程
SELECT CONCAT('PR_', p.db,'.',p.name ) FileName ,
CONCAT(
'
DELIMI','TER $$
USE `',p.db,'`$$
DROP PROCEDURE IF EXISTS `',p.name, '`$$
CREATE DEFINER=','`',
LEFT(DEFINER, -1+LOCATE('@',DEFINER)),
'`@`',
RIGHT(DEFINER,LENGTH(DEFINER)-LOCATE('@',DEFINER)),
'`'
,' PROCEDURE `',p.name ,'`(',p.param_list,')
',p.body_utf8,
'$$
DELIMI','TER ;
' ) AS sql_create
FROM mysql.proc AS p
WHERE p.db LIKE '%'
AND TYPE LIKE 'PROC%'
ORDER BY p.db,p.name ;
call sp_add();
是不是你定义的过程有问题吧,并没有指出返回结果来
像我这样是可以的:
CREATE PROCEDURE sp_add(a int, b int,out c int)
begin
set c=a+ b;
end;
调用过程:
call sp_add (1,2,@a);
select @a;
mysql没有块的概念,单独的块,如下
BEGIN
INSERT INTO liu_test VALUE ('aa','bb');
END
这种块是不能执行的。
单独块执行最好的办法还是建存储过程,执行结束再删除存储过程 。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。