CREATE PROCEDURE存储

案例:插入数据

DROP PROCEDURE if EXISTS test_sys;

CREATE PROCEDURE test_sys(a INT) 
BEGIN 
	DECLARE a INT; 
	SET a =  1;
	WHILE a < 5929 DO
		INSERT INTO zcchfx_categories_rules(rule_id,category_id) VALUES(a,10001);
		SET a= a + 1;
		COMMIT;
	END WHILE; 
END;


CALL test_sys(1);

1、删除存储过程(提示PROCEDURE test_sys already exists已存在,则需删除):

DROP PROCEDURE if EXISTS test_sys;

2、创建存储过程(插入1~19数据):

CREATE PROCEDURE test_sys(a INT) 
BEGIN 
	DECLARE a INT; 
	SET a =  1;
	WHILE a < 20 DO
		INSERT INTO sp(PORT) VALUES(a);
		SET a= a + 1;
		COMMIT;
	END WHILE; 
END;

3、MYSQL调用存储过程:

语法:
CALL 存储过程名(參数列表)

// CALL语句能够用声明为OUT或的INOUT參数的參数给它的调用者传回值。
// 存储过程名称后面必须加括号,哪怕该存储过程没有參数传递

例:
CALL test_sys(100);

 4、列出全部的存储过程:

SHOW PROCEDURE STATUS

5、MySQL存储过程參数类型(in、out、inout)

MySQL存储过程參数(in)

MySQL存储过程 “in”參数:跟 C语言的函数參数的值传递类似, MySQL存储过程内部可能会改动此參数,但对 in类型參数的改动,对调用者(caller)来说是不可见的(not visible)。

MySQL存储过程參数(out)

MySQL存储过程 “out”參数:从存储过程内部传值给调用者。在存储过程内部,该參数初始值为 null,不管调用者是否给存储过程參数设置值

MySQL存储过程參数(inout)

MySQL存储过程 inout參数跟 out类似,都能够从存储过程内部传值给调用者。不同的是:调用者还能够通过 inout參数传递值给存储过程。

总结

假设只想把数据传给 MySQL存储过程,那就使用“in”类型參数;

假设只从 MySQL存储过程返回值,那就使用“out”类型參数;

假设须要把数据传给 MySQL存储过程,还要经过一些计算后再传回给我们,此时,要使用“inout”类型參数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要创建一个存储过程,可以使用CREATE PROCEDURE语句。其语法格式如下: CREATE PROCEDURE <过程名> ( [过程参数[,… ] ) <过程体> [过程参数[,… ] 格式 [ IN | OUT | INOUT ] <参数名> <类型>。 可以根据需要设置过程的参数和类型。创建存储过程可以使用的关键字还包括CREATE METHOD和CREATE FUNCTION,用于创建未公开为存储过程的方法,以及CREATE QUERY用于创建未公开为存储过程的查询。此外,还可以使用ALTER PROCEDURE, DROP PROCEDURE, CALL, CREATE FUNCTION等关键字来操作存储过程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [2、MySQL创建存储过程(CREATE PROCEDURE)(函数)](https://blog.csdn.net/weixin_44234912/article/details/109001160)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [第十章 SQL命令 CREATE PROCEDURE(一)](https://blog.csdn.net/yaoxin521123/article/details/120193331)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [CREATE PROCEDURE--PostgreSQL命令](https://blog.csdn.net/wuyy0224/article/details/126686096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值