• MySQL存储过程和函数(一)


    1、创建procedure和function
    CREATE PROCEDURE sp_name ([proc_parameter[,...]])
    
        [characteristic ...] routine_body
     
    
    CREATE FUNCTION sp_name ([func_parameter[,...]])
    
        RETURNS type
        [characteristic ...] routine_body
        
    
        proc_parameter:
    
        [ IN | OUT | INOUT ] param_name type
        
    
        func_parameter:
    
        param_name type
     
    
    type:
    
        Any valid MySQL data type
     
    
    characteristic:
    
        LANGUAGE SQL
    
      | [NOT] DETERMINISTIC
    
      | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    
      | SQL SECURITY { DEFINER | INVOKER }
    
      | COMMENT 'string'
    
     
    
    routine_body:
    
        Valid SQL procedure statement or statements
     
    (1)默认子程序和数据库相连,如:db_name.sp_name.
     ( 2 ) sp_name的名字最好是唯一
    (3) 参数为IN, OUT, 或INOUT 只对PROCEDURE是合法的。(FUNCTION参数总是被认为是IN参数)
    (4) RETURNS字句只能对FUNCTION做指定,对函数而言这是强制的。它用来指定函数的返回类型,而且函数体必须包含一个RETURN value语句。
    (5) routine_body 包含合法的SQL过程语句。
    (6) 如果程序或线程总是对同样的输入参数产生同样的结果,则被认为它是“确定的”,否则就是“非确定”的。如果既没有给定DETERMINISTIC也没有给定NOT DETERMINISTIC,默认的就是NOT DETERMINISTIC。
    (7) 一些特征提供子程序使用数据的内在信息。CONTAINS SQL表示子程序不包含读或写数据的语句。NO SQL表示子程序不包含SQL语句。READS SQL DATA表示子程序包含读数据的语句,但不包含写数据的语句。
             MODIFIES SQL DATA表示子程序包含写数据的语句。如果这些特征没有明确给定,默认的是CONTAINS SQL
    (8) SQL SECURITY特征可以用来指定 子程序该用创建子程序者的许可来执行,还是使用调用者的许可来执行。默认值是DEFINER。
    (9) COMMENT子句是一个MySQL的扩展,它可以被用来描述 存储程序。这个信息被SHOW CREATE PROCEDURE和 SHOW CREATE FUNCTION语句来显示。
    2、修改
    ALTER {PROCEDURE | FUNCTION} sp_name [characteristic ...]
    
     
    
    characteristic:
    
        { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    
      | SQL SECURITY { DEFINER | INVOKER }
    
      | COMMENT 'string'
    3、删除
    DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name
    4、展示
    SHOW CREATE {PROCEDURE | FUNCTION} sp_name
    SHOW {PROCEDURE | FUNCTION} STATUS [LIKE 'pattern']
    5、调用
    call db_name.sp_name(parameter)
  • 相关阅读:
    c语言输入一个字符串,统计其字母,数字和其他字符的个数,并以柱状图输出
    c语言中的#ifdef和#ifndef
    宏定义#define
    c语言中的register int
    android SDK 更新的几个网址
    android studio启动不进行fetching Android sdk compoment information
    android eclipse ADT 安装maven插件失败
    Jsp 的映射
    Jsp 九大隐式对象
    Jsp 乱码处理
  • 原文地址:https://www.cnblogs.com/b-dong/p/6305514.html
Copyright © 2020-2023  润新知