• 中文
    • English
  • 注册
  • 查看作者
    • 8-3:MySQL 存储过程语法结构解析

      一.  创建存储过程的语法结构

      CREATE
      [DEFINER = {user | CURRENT_USER }]
      PROCEDURE sp_name ([proc_parameter[,...]])
      [characteristic...]routine_body
      
      proc_parameter:
      [IN | OUT | INOUT] param_name type

      二.  语法结构解释

      1.  [DEFINER = {user | CURRENT_USER }] 创建者,如果省略,则默认为当前登录用户

      2.  sp_name:存储过程名字,参数有三个选项:

      • IN:表示该参数的值必须在调用存储过程时指定
      • OUT:表示该参数的值可以被存储过程改变,并且可以返回
      • INOUT:表示该参数的调用时指定,并且可以被改变和返回

      3.  [characteristic…]routine_body 特性:

      COMMENT 'string'
      | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
      | SQL SECURITY {DEFINER | INVOKER }
      • COMMENT:注释

      • CONTAINS SQL:包含SQL语句,但不包含读或写数据的语句

      • NO SQL:不包含SQL语句

      • READS SQL DATA:包含读数据的语句

      • MODIFIES SQL DATA:包含写数据的语句

      • SQL SECURITY {DEFINER| INVOKER }指明谁有权限来执行

      4. 自定义函数有函数体,存储过程也有过程体

      • 过程体由合法的SQL语句构成

      • 过程体可以是‘任意’SQL语句

      • 复合解耦股可以包含声明,循环,控制结构

      • 过程体如果为复合结构则使用BEGIN…END语句

    • 0
    • 0
    • 0
    • 4.6k
    • 梁兴健

      请登录之后再进行评论

      登录

      赞助本站

      • 支付宝
      • 微信
      • QQ

      感谢一直支持本站的所有人!

      单栏布局 侧栏位置: