• 中文
    • 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.9k
  • 梁兴健

    请登录之后再进行评论

    登录
    单栏布局 侧栏位置: