四时宝库

程序员的知识宝库

初识 MySQL 存储过程

MySQL 中的 “存储过程” :

  • 为以后的使用而保存的一条或多条MySQL语句的集合
  • 即:将sql打包,集中处理,类似于批处理,但是优于批处理
  • 类似于其他编程语言的自定义函数

(鉴于开发中很少使用mysql命令行,所以下面的例子均基于如dbeaver这样的客户端开发)


创建存储过程:

CREATE PROCEDURE database1.testproc()
BEGIN  -- BEGIN 和 END 之间的是 过程体
	SELECT * FROM database1.testtb;
END; 

注意:procedure在创建时也要指明是哪个库下的

调用存储过程:

CALL database1.testproc();  -- 返回的结果就是 SELECT * FROM database1.testtb; 的结果

带参数:

CREATE PROCEDURE tobase3.testproc(
		OUT arg1 varchar(30),  -- OUT 表示输出参数,相当于return
		OUT arg2 varchar(30)
		)
BEGIN 
	SELECT 'aaa' INTO arg1;
	SELECT 'bbb' INTO arg2;
END; 

CALL tobase3.testproc(@arg1,@arg2);  -- 调用过程
SELECT @arg1, @arg2;

-- 结果:
@arg2|@arg1|
-------|--------|
  bbb  |aaa      |

传参:

CREATE PROCEDURE tobase3.testproc(
		IN inarg varchar(30),  -- 待传入的参数
		OUT outarg varchar(30)   -- 过程返回的值
		)
BEGIN 
	SELECT CONCAT('aaa',inarg) INTO outarg ;  -- 把最终结果赋给返回的变量
END; 

CALL tobase3.testproc('tom',@outaag);  -- 调用过程
SELECT @outaag;  -- 验证

----------------------

持续更新中······

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接