mysql 窗口写procedure_MySQL中Procedure事务编写基础笔记

一、PROCEDURE:

PROCEDURE,事务,一个存储过程,实际上就是在服务器端直接在数据库中编写一段代码作运算,在服务器端进行高效的运算,运算结果直接返还给客户端。

它和FUNCTION一个明显的不同点是,FUNCTION最后会有RETURN语句,返回运算结果,PROCEDURE不允许有RETURN语句的,但是可以在参数表中指定返还数据。

PROCEDURE编译完成后会存储在数据库中,需要调用的时候使用CALL语句对事务或者函数进行调用。编写PROCEDURE不仅可以避免重复编码,同时还可以提高计算效率。

二、CREATE PROCEDURE基本语法:

下面不妨先看一看CREATE PROCEDURE以及CREATE FUNCTION的语法:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 CREATE

2 [DEFINER = { user | CURRENT_USER }]

3 PROCEDURE sp_name ([proc_parameter[,...]])4 [characteristic ...]routine_body5 CREATE

6 [DEFINER = { user | CURRENT_USER }]

7 FUNCTION sp_name ([func_parameter[,...]])8 RETURNStype9 [characteristic ...]routine_body10 proc_parameter:11 [IN | OUT | INOUT]param_name type12 func_parameter:13 param_name type14 type:15 Anyvalid MySQL data type16 characteristic:17 COMMENT 'string'

18 |LANGUAGE SQL19 | [NOT]DETERMINISTIC20 | { CONTAINS SQL | NO SQL | READS SQL DATA |MODIFIES SQL DATA }21 | SQL SECURITY { DEFINER |INVOKER }22 routine_body:23 Valid SQL routine statement

View Code

其中有几个注意点是:

1,DEFINER你可以用这个选项指定可以调用该PROCEDURE的用户,比如说允许本地的用户nero使用,那么可以指定为:DEFINER='nero'@'localhost',如果这个事务就是创建给当前用户使用的,那么可以指定为:DEFINER=CURRENT_USER。

2,事务安全性:characteristic中如果使用了SQL SECURITY,那么事务每次执行的时候,指定的安全上下文都会被执行,它们会检查当前

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值