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

1:选择新建函数。

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

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

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

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

INOUT:既是入参也是出参。

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

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

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

DECLARE u1  bigint(20);

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

SET @u1 = 89893;
SET @u1 = userId;

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

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

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

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

SELECT team_id,id INTO
@t1,@m1
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;

if(@invisitAmount>@max_effective_amount) THEN
SET @invisitAmount= @max_effective_amount;
end if;

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

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


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

SELECT @u1,@newInvisit,@oldInvisit;

转载于:https://www.cnblogs.com/jpfss/p/9759122.html

利用navicat写mysql的存储过程相关推荐

  1. navicat for mysql 数据传输_如何利用Navicat for MySQL数据库进行数据传输

    Navicat for MySQL可以控制数据库中的数据库表进行操作,如表结构.表数据等.两个不同的数据库,一个是另一个数据库的备份,需要对比表结构和表数据.如果表结构相同,需要同步表数据,用于备份. ...

  2. 利用navicat for mysql实现mysql数据库表结构复制

    1.选择navicat for mysql的数据传输功能 2.选择高级设置,取消插入记录功能 3.选择传输数据库及相应表即可. 转载于:https://www.cnblogs.com/baipengc ...

  3. 利用navicat向mysql数据库导入数据时出现1062 - Duplicate entry '0' for key 'PRIMARY'错误的解决办法

    1062 - Duplicate entry '0' for key 'PRIMARY',明明导入的数据值不一样,但错误提示主键已存在,不能插入.不知道为什么有些数据插入不成功,原因我也不知道. 解决 ...

  4. NAVICAT FOR MYSQL存储过程

    NAVICAT FOR MYSQL存储过程 今天使用NAVICAT写MYSQL的存储过程,结果发现总是报错,点击运行报incorrect routine name '错误,后来发现是NAVICAT工具 ...

  5. 用Navicat管理MySQL数据库

    Navicat为MySQL提供了可视化的数据库管理,利用Navicat可以完成访问.配置.控制.管理和开发MySQL的所有工作,极大方便了数据库开发人员和数据库管理员对MySQL系统的各种访问.Nav ...

  6. navicat 查看mysql版本_查看mysql的版本号

    1.1 在命令行登录mysql,即可看到mysql的版本号 [root@heyong ~]# mysql -uroot -p Enter password: Welcome to the MySQL ...

  7. 写MySQL存储过程实现动态执行SQL

    写MySQL存储过程实现动态执行SQL --存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数create procedure p_procedurecode(i ...

  8. mysql show 存储过程_如何利用SHOW CREATE语句查看mysql存储过程?

    上次我们讲过如何利用SHOW STATUS语句进行MySQL数据库的存储过程的查看以及函数的使用,今天给大家介绍另一个可以查看mysql的存储过程和函数的语句. <MySQL入门很简单>第 ...

  9. 建站需要mysql_你还在对建站数据不重视吗-Navicat for MySQL赶快上手使用吧

    那我们先来介绍下什么是Navicat for MySQL Navicat for MySQL 是一款强大的 MySQL 数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具,且于新用户来 ...

最新文章

  1. activiti搭建
  2. Elasticsearch及相关插件的安装
  3. [Cocos2d-html5]关于压缩
  4. Android 开发之 fill_parent、wrap_content和match_parent的区别
  5. VS2005下配置OGRE
  6. 某LINUX下,从快捷方式的目录运行程序,参数就是快捷方式的名
  7. html怎么添加视频链接,PPT怎么将超链接添加到视频图文教程
  8. MATLAB变压器设备故障模型,电力变压器内部故障简便仿真模型
  9. CAD2008 启动慢 卡住
  10. FigDraw 8. SCI 文章绘图之饼图 (Pieplot)
  11. python语言中的转义字符_怎么使用Python转义字符
  12. 4p营销组合策略案例_营销组合策略的4P讲解
  13. 如何打印CSDN文章或把文章转换PDF
  14. 16含参数的极限问题
  15. node-sass是什么?
  16. SecureBlackbox.NET 22.0.8455 Crack
  17. centos ifconfig不显示IP地址解决办法之一(亲测有效)
  18. W5500+DHCP+DNS+MQTT
  19. 地下水深度去除铁锰的滤料详解
  20. 无限易pythongo开发期货量化策略

热门文章

  1. 蓝桥杯ACM简单题-交换瓶子 2020-12-22
  2. 学Python怎么月入过万,迎娶白富美,走上人生巅峰?
  3. 5G NR PDSCH的解调参考信号DMRS
  4. Linux_从零开始学习_(6) 远程管理命令
  5. linux trim命令,linux shell trim()
  6. ……微软学生开发者峰会……
  7. c语言中数组长度的计算
  8. 单页营销网站关键词keyword和描述description写法
  9. Spring Boot单元测试集成redis
  10. HTML菊花图案绘制,用HTML5中的canvas元素画菊花