zoukankan      html  css  js  c++  java
  • 利用navicat写mysql的存储过程

    最近项目经理让我给新的活动的预留一个插入红包和查看详情的sql,方便在项目出问题的做一些紧急操作,我想了下这里面还涉及到挺多逻辑和挺多表的一句句查也不方便啊,干脆写到存储过程里,于是开始在navicat写存储过程,因为是第一次写,在此记录一下,方便下次查看 (•̀ᴗ•́)و ̑̑

    1:选择新建函数。

    2:新建函数后会出现下面的界面,要是你不确定存储过程的输入输出值,可以直接点击完成,在里面的编辑的时候再加上这些参数,若是已经确定参数可以点击下一步填写相关参数。


    3:如果上一步点击的是下一步的话,就会出现下面的界面,各个参数的含义在界面右面的描述中有,其实用惯的也能猜出来,模式的命名也是见名知意的。

    IN:存储过程运行时需要输入的参数,也就是入参。

    OUT:储存过程运行后的返回值,也就是出参。

    INOUT:既是入参也是出参。


    4:填完后点确认就会有下面的界面,navicat会给我们初识化好基本格式,如下:


    5:现在我们就可以在begin和end直接编辑我们的语句,下面介绍存储过程中常用的操作。

    1):定义一个变量如下,使用 DECLARE修饰变量,后面跟变量名,变量的数据类型和大小;

    DECLARE u1  bigint(20);
    

    2):有了变量,我们就可以开始做赋值操作,先来个简单的单个变量的赋值,如下直接使用SET变量名前使用@修饰,可以直接赋值也可以将入参赋值给变量,如下,将入参userId赋值给变量u1;

    1. SET @u1 = 89893;
    2. SET @u1 = userId;

    3):我们还可以将查询语句的结果赋值给变量如下,使用同单个变量的赋值类似,只需将查询的查询sql括起来就好了;

    1. SET
    2. @t1 = (SELECT team_id FROM t_team_member WHERE user_id = @u1);

    4):有了查询的单列赋值,我们再说下多列赋值,如果查询的返回值有多个列我们可以做如下的操纵,我们将查询出来的结果team_id和id分别赋值给t1和m1变量,

    上面的单列赋值用SET,多列赋值使用的是一个SELECT…… INTO 。

    1. SELECT team_id,id INTO
    2. @t1,@m1
    3. FROM t_team_member WHERE user_id = @u1;
    5):说完了各种变量的赋值操作,我们还需要将结果返回,返回结果集的操作如下:SELECT @变量名  ( 变量名间用逗号分隔);

    SELECT @max_effective_amount,@teamInvisitAmount

    6):逻辑判断时,在存储过程中也能使用IF…… ELSE 格式为: IF(判断的条件) THEN 满足if条件做的操作 ELSE 不满足if条件做的操作 END IF;

    1. if(@invisitAmount>@max_effective_amount) THEN
    2. SET @invisitAmount= @max_effective_amount;
    3. end if;

    7):前面有说过一开始不确定入参和出参可以之后再编辑,编辑的参数的格式为: 【IN、OUT、INOUT】【参数名】 【参数的数据类型】,编写完成后就可以点击运行,

    会弹出如下的输入参数框,如果入参有多个参数的话,可以按顺序用逗号分隔填入。



    8):运行结果如下,允许有多个结果集,也就是多个SELECT 变量名 (多个变量中间用逗号分隔):

    SELECT @u1,@newInvisit,@oldInvisit;









  • 相关阅读:
    SGU 271 Book Pile (双端队列)
    POJ 3110 Jenny's First Exam (贪心)
    HDU 4310 Hero (贪心)
    ZOJ 2132 The Most Frequent Number (贪心)
    POJ 3388 Japanese Puzzle (二分)
    UVaLive 4628 Jack's socks (贪心)
    POJ 2433 Landscaping (贪心)
    CodeForces 946D Timetable (DP)
    Android Studio教程从入门到精通
    Android Tips – 填坑手册
  • 原文地址:https://www.cnblogs.com/jpfss/p/9759122.html
Copyright © 2011-2022 走看看