zoukankan      html  css  js  c++  java
  • mysql的存储过程与自定义函数

    一、函数

    创建格式:

    CREATE FUNCTION sp_name ([func_parameter[,...]])
        RETURNS type
        [characteristic ...] routine_body
    func_parameter:
        param_name type
     

    例子:
    DELIMITER //
    CREATE FUNCTION Myf() RETURNS VARCHAR(50) 
    BEGIN
    RETURN '11';
    END //
    注意:"DELIMITER //" 意思是定义 "//"为批处理结束分隔符,没有这个语句会报错

    调用: select Myf();

    总结:函数的参数前不能有修饰符如,IN,OUT(不同于存储过程),调用时可直接调用,像系统函数一般使用。

    二、存储过程

    创建格式:

    CREATE PROCEDURE sp_name ([proc_parameter[,...]])
        [characteristic ...] routine_body
    proc_parameter:
        [ IN | OUT | INOUT ] param_name type
    IN用于说明是传入参数,OUT为返还结果的参数(即开始时没有值,调用后有值),INOUT则充当两者的角色
    例子:
    DELIMITER //
    CREATE PROCEDURE mySP(a INT(2),OUT b INT(2))
    BEGIN
    SET b=110;
    SELECT a+b;
    END //
    调用:
    CALL mySP(1,@b);
    SELECT @b;
    总结:IN,OUT,INOUT用于指定参数的类型,OUT参数的赋值使用set操作符(与局部变量赋值类似),调用时使用call,out参数要有@修饰。
     
    要查看自定义的Function和Procedure,则可查看系统库mysql的proc表,那里收集了所有用户定义的函数和存储过程
  • 相关阅读:
    iOS重签名及问题总结
    安装class-dump
    UISearchController 很坑
    hashmap 之哈希冲突
    wait()与sleep()的区别
    docker之es+es-head+kibana+ik分词器安装
    MySQL很有用的命令
    分布式事务执行逻辑
    索引 创建原则
    合理使用存储引擎
  • 原文地址:https://www.cnblogs.com/tangyue/p/3684946.html
Copyright © 2011-2022 走看看