• MySQL存储过程---基础


    存储过程

    语法

    DELIMITER $$
    
    CREATE PROCEDURE `employees`.`a`(参数列表)
    
        BEGIN
        sql1;
        sql2;
        ...
    END$$ DELIMITER ;

    语法说明

    DELIMITER $$:定义语句结束标记,存储过程体中,每条SQL都使用“;”结束,所有语句作为一个过程体执行,如果过程体中只有一条SQL语句,可以省略begin和end
    
    参数列表:参数模式 参数名 参数类型
    参数模式 :
      IN : 输入参数,单独传参。in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。
      OUT : 输出参数,作为返回值的参数。
      INOUT: 既输入有输出,可做输入也可做输出。

    in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。

    out 模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程

    in out 表示高参数可以向该过程中传递值,也可以将某个值传出去

    调用存储过程

    CALL 存储过程名(实参列表)

    实例

    创建空参数的存储过程

    DELIMITER $$
    
    USE `world`$$
    
    DROP PROCEDURE IF EXISTS `t1`$$
    
    CREATE DEFINER=`root`@`10.0.0.%` PROCEDURE `t1`()
    BEGIN
    SELECT COUNT(*) FROM world.city;
    END$$
    
    DELIMITER ;

     调用

    CALL t1()

    创建带out参数的存储过程

    DELIMITER $$
    
    CREATE
        /*[DEFINER = { user | CURRENT_USER }]*/
        PROCEDURE `world`.`t2`( IN num INT,OUT num1 INT)
        /*LANGUAGE SQL
        | [NOT] DETERMINISTIC
        | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
        | SQL SECURITY { DEFINER | INVOKER }
        | COMMENT 'string'*/
        BEGIN
        INSERT INTO t2 VALUES(num);
        SELECT COUNT(*) INTO num1 FROM t2;
        SELECT num1;
        END$$
    
    DELIMITER ;

    调用

    SET @n2:=0;
    CALL t2(2,@n2)
    SELECT * FROM t2;

    带inout参数的存储过程

    DELIMITER $$
    
    CREATE
        /*[DEFINER = { user | CURRENT_USER }]*/
        PROCEDURE `world`.`t3`( INOUT a INT, INOUT b INT, OUT c INT)
        /*LANGUAGE SQL
        | [NOT] DETERMINISTIC
        | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
        | SQL SECURITY { DEFINER | INVOKER }
        | COMMENT 'string'*/
        BEGIN
        SELECT a*2 INTO a;
        SELECT b*2 INTO b;
        SELECT a+b INTO c;
        SELECT a,b,c;
        END$$
    
    DELIMITER ;

    调用

    SET @a:=5;
    SET @b:=10;
    SET @c:=0;
    CALL t3(@a,@b,@c)
  • 相关阅读:
    vb学习笔记
    spfa模版
    spfa slf优化
    接口总结
    SAP屏幕穿透
    判断可编辑字段,用户输入的数据是否为纯数字(包含带小数点的小数)
    对于ALV中的可编辑字段,当输入的数据不满足某种条件时,我们需要将它恢复到修改前的数据,并刷新ALV。但是可编辑的字段刷新后仍然时修改后的数据,此处记录一种方法。
    ALV中可编辑字段数据变化时,对变化的数据进行操作。
    通过UPDATE 往数据库中更新数据
    SE16N 中设置为可编辑状态
  • 原文地址:https://www.cnblogs.com/zh-dream/p/13088419.html
Copyright © 2020-2023  润新知