位置: 编程技术 - 正文

理解MySQL变量和条件(mysql@变量)

编辑:rootadmin

推荐整理分享理解MySQL变量和条件(mysql@变量),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql变量包括,mysql常量与变量,mysql常量与变量,mysql常量与变量,mysql使用变量的前提是什么,mysql变量的用法,mysql变量定义与使用,mysql变量定义与使用,内容如对您有帮助,希望把文章链接给更多的朋友!

一、概述

变量在存储过程中会经常被使用,变量的使用方法是一个重要的知识点,特别是在定义条件这块比较重要。

mysql版本:5.6

二、变量定义和赋值

declare定义变量

在存储过程和函数中通过declare定义变量在BEGIN...END中,且在语句之前。并且可以通过重复定义多个变量

注意:declare定义的变量名不能带‘@'符号,mysql在这点做的确实不够直观,往往变量名会被错成参数或者字段名。

DECLARE var_name[,...] type [DEFAULT value]例如:

SET变量赋值

SET除了可以给已经定义好的变量赋值外,还可以指定赋值并定义新变量,且SET定义的变量名可以带‘@'符号,SET语句的位置也是在BEGIN ....END之间的语句之前。

1.变量赋值

2.通过赋值定义变量

SELECT ... INTO语句赋值

通过select into语句可以将值赋予变量,也可以之间将该值赋值存储过程的out参数,上面的存储过程select into就是之间将值赋予out参数。

这个存储过程就是select into将值赋予变量;

表中并没有depid= and name='陈'的记录。

三、条件

条件的作用一般用在对指定条件的处理,比如我们遇到主键重复报错后该怎样处理。

定义条件

定义条件就是事先定义某种错误状态或者sql状态的名称,然后就可以引用该条件名称开做条件处理,定义条件一般用的比较少,一般会直接放在条件处理里面。

1.没有定义条件:

理解MySQL变量和条件(mysql@变量)

报主键重复的错误,其中是主键重复的错误代码,是sql错误状态

2.定义处理条件

在执行存储过程的步骤中并没有报错,但是由于我定义的是exit,所以在遇到报错sql就终止往下执行了。

接下来看看continue的不同

其中红色标示的是和上面不同的地方,这里定义条件使用的是SQL状态,也是主键重复的状态;并且这里使用的是CONTINUE就是遇到错误继续往下执行。

条件处理

条件处理就是之间定义语句的错误的处理,省去了前面定义条件名称的步骤。

handler_type:遇到错误是继续往下执行还是终止,目前UNDO还没用到。

CONTINUE:继续往下执行

EXIT:终止执行

condition_values:错误状态

SQLSTATE [VALUE] sqlstate_value:就是前面讲到的SQL错误状态,例如主键重复状态SQLSTATE ''

condition_name:上面讲到的定义条件名称;

SQLWARNING:是对所有以开头的SQLSTATE代码的速记,例如:DECLARE CONTINUE HANDLER FOR SQLWARNING。

NOT FOUND:是对所有以开头的SQLSTATE代码的速记。

SQLEXCEPTION:是对所有没有被SQLWARNING或NOT FOUND捕获的SQLSTATE代码的速记。

mysql_error_code:是错误代码,例如主键重复的错误代码是,DECLARE CONTINUE HANDLER FOR

语句:

通过SELECT @ID,@X可以知道存储过程已经执行到了最后,但是因为存储过程后面有做回滚操作整个语句进行了回滚,所以ID=7的符合条件的记录也被回滚了。

总结

变量的使用不仅仅只有这些,在光标中条件也是一个很好的功能,刚才测试的是continue如果使用EXIT的话语句执行完“SET @ID=2;”就不往下执行了,后面的IF也不被执行整个语句不会被回滚,但是使用CONTINE当出现错误后还是会往下执行如果后面的语句还有很多的话整个回滚的过程将会很长,在这里可以利用循环,当出现错误立刻退出循环执行后面的if回滚操作,在下一篇讲循环语句会写到,欢迎关注。

理解Mysql prepare预处理语句 MySQL5.1对服务器一方的预制语句提供支持。如果您使用合适的客户端编程界面,则这种支持可以发挥在MySQL4.1中实施的高效客户端/服务器二进制协议的优

理解MySQL存储过程和函数 一、概述一提到存储过程可能就会引出另一个话题就是存储过程的优缺点,这里也不做讨论,一般别人问我我就这样回答你觉得它好你就用它。因为mysql

MySQL使用游标批量处理进行表操作 一、概述本章节介绍使用游标来批量进行表操作,包括批量添加索引、批量添加字段等。如果对存储过程、变量定义、预处理还不是很熟悉先阅读我前

标签: mysql@变量

本文链接地址:https://www.jiuchutong.com/biancheng/319772.html 转载请保留说明!

上一篇:MySQLMerge存储引擎(mysql数据表存储引擎)

下一篇:理解Mysql prepare预处理语句(理解的近义词)

  • 采购材料的进项税
  • 应交税费负数调整到其他非流动资产
  • 金税四期上线了吗什么时候上线
  • 未开发票如何确认收入并进行申报
  • 三方合同怎么盖章
  • 文化传媒公司开票税点
  • 免税蔬菜税额用什么表示
  • 季报利润表本期金额怎么计算
  • 净资本和净资产区别
  • 印花税交完有什么凭证
  • 盈亏平衡点产量越高,项目风险越大
  • 转让土地缴纳增值税进项如何抵扣
  • 子公司注销资产负债表如何合并
  • 跨年暂估收入如何调整
  • 纸箱报废处理怎么做账
  • 员工销售家具取得的工资怎么写分录?
  • 小规模纳税人购入货物收到增值税专用发票
  • 企业外币交易会计核算方法
  • 税收征管法实施条例
  • 进项税和销项税的借贷方向
  • 公司发放的车补扣个人所得税吗
  • win10新建文件夹快捷键ctrl加什么
  • tp link无线路由器设置
  • 如何降低融资成本率
  • 收入的特征包括哪些
  • mac开机按command+r没反应
  • 帮忙介绍业务
  • windows 11 正式版实际使用体验如何?
  • hotkey可以卸载吗
  • 年终奖一般发什么奖品
  • 以前年度损益调整属于哪类科目
  • 驼鹿穿过莫兰山了吗
  • 预加载的目的是什么
  • 企业所得税如何计算应纳税所得额
  • 公允价值变动损益在利润表哪里
  • 集成代码
  • 学堂在线结课后还能看吗
  • 增值税专用发票有几联?
  • pytorch怎么入门
  • php返回数组中所有的值的函数是什么?
  • 二氧化剂的使用方法
  • python中map和filter有啥区别
  • 资金账簿印花税按年还是按次
  • 发票已交税还可以作废吗
  • 营业收入的意义是什么
  • 直接计入所有者权益的利得和损失,影响当期损益
  • 成本费用率分析说明
  • 单位食堂不对外营业需不需要办理经营许可证
  • 出售其他债权投资产生的收益为什么计入留存收益
  • 小规模纳税人销售自己使用过的物品
  • 冲抵和抵扣
  • 电子商务会计科目有哪些
  • 出差补助办法
  • 变更法人流程和资料
  • 记账凭证分类
  • 公司支票可以进私人账户吗有限额吗
  • 计算机二级考试时间2024
  • windows任务管理器命令
  • 电脑总是提示windows启动怎么办
  • 管理需要
  • 如何在win7系统中查看系统信息
  • 电脑卡 硬盘100%
  • Win7系统设置屏保密码
  • win7系统补丁包
  • windows8.1默认壁纸
  • centos暂停
  • win8蓝牙连不上
  • lowleverfatal error怎么解决
  • win10预览版好吗
  • Windows7电脑怎么调整屏幕亮度
  • win10系统附件游戏被删除
  • Win10预览版镜像
  • win7怎么取消开机选择系统
  • Unity3D游戏开发培训课程大纲
  • js有哪些作用域,分别是什么意思
  • js当前时间格式化
  • python 中文转码
  • 专项附加扣除修改后,多扣的税
  • 苏州市区公司可以在园区买社保吗
  • 小规模纳税人是按月还是按季度申报增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设