首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysql存储过程

其实我用到最多的就是如果项目已经部署上线了,但是有些数据是出错了,导致无法正常使用,要修改数据表的方式来解决,但又涉及多个表联动操作的话,这个时候我第一时间就是存储过程来解决,当然你也可以通过写Java...调用存储函数的形式就像调用MySQL内部函数一样。...游标允许您迭代查询返回的一组行,并相应地处理每行。 MySQL游标为只读,不可滚动和敏感。 1、只读:无法通过光标更新基础表中的数据。2、不可滚动:只能按照SELECT语句确定的顺序获取行。...但是,对其他连接的数据所做的任何更改都将影响由敏感游标使用的数据,因此,如果不更新敏感游标所使用的数据,则更安全。MySQL游标是敏感的。 您可以在存储过程,存储函数和触发器中使用MySQL游标。...pay_time, product, source FROM cms_aw_order WHERE source = p_source ; -- 设置结束标志

6.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    变量、流程控制与游标

    declare 处理方式 handler for 错误类型 处理语句 处理方式有: continue——错误不处理,继续执行 exit——遇到错误马上退出 错误类型: 定义处理程序的几种方式: 流程控制 MySQL...相当于break 语法格式:leave label label参数表示循环的标志。 跳转语句——iterate iterate语句只能用在循环语句内。...相当于continue 语法形式: interate label label参数表示循环标志。interate语句必须跟在循环标志前面 游标 什么是游标?...看下面的文档 个人解释:就是充当个指针的作用 使用游标的步骤:看尚硅谷的课件 声明游标——declare 打开游标——open 使用游标——fetch 关闭游标——close MySQL8.0...的新特性——全局变量的持久化 没意思,看课件吧 细节的东西请参照下面资料,本人觉得看着课件写没有意义 参考资料: 尚硅谷MySQL从菜鸟到大牛 第16章_变量、流程控制与游标.pdf

    27230

    SQL必知必会总结4-第18到22章

    中事务的相关知识点,包含什么是事务处理,怎样利用COMMIT 和 ROLLBACK语句管理事务处理 事务处理 事务Transaction,一个最小的、不可再分的工作单元,通常一个事务对应一个完整的业务。...持久性是事务的保证,是事务结束的标志。...开始标志:任何一条DML语句的执行,标志事务开始 结束的标志分为两种:成功结束的标识和失败结束的标识 1、成功结束的标志 commit:提交 将所有的DML语句的操作历史记录和底层硬盘中的数据进行了同步...使用游标 使用游标的几个步骤: declare:在使用游标之前,必须先进行声明 open:一旦声明了游标,就必须打开游标 对于填有数据的游标,根据需要取出检索的各行 close:在结束的时候,必须关闭游标...)", ("python", "123456", "python@gmail.com")) conn.commit() # 需要再执行conn.commit() # 同时执行插入多条信息:多条信息元组的形式表示

    1.3K30

    玩转Mysql系列 - 第19篇:游标详解

    这是Mysql系列第19篇。 环境:mysql5.7.25,cmd命令中进行演示。 代码中被[]包含的表示可选,|符号分开的表示可选其一。...当调用fetch的时候,会获取当前行的数据,如果当前行无数据,会引发mysql内部的NOT FOUND错误。 关闭游标 close 游标名称; 游标使用完毕之后一定要关闭。...*/ DECLARE v_a int DEFAULT 0; /*创建一个变量,用来保存当前行中b的值*/ DECLARE v_b int DEFAULT 0; /*创建游标结束标志变量...CREATE PROCEDURE proc1() BEGIN /*创建一个变量,用来保存当前行中a的值*/ DECLARE v_a int DEFAULT 0; /*创建游标结束标志变量...END IF; BEGIN /*创建一个变量,用来保存当前行中b的值*/ DECLARE v_b int DEFAULT 0; /*创建游标结束标志变量

    2K20

    MySQL数据库,详解游标使用(二)

    /*创建存储过程*/ CREATE PROCEDURE proc1() BEGIN /*创建⼀个变量,⽤来保存当前⾏中a的值*/ DECLARE v_a int DEFAULT 0; /*创建游标结束标志变量...if v_done1 THEN LEAVE a; END IF; BEGIN /*创建⼀个变量,⽤来保存当前⾏中b的值*/ DECLARE v_b int DEFAULT 0; /*创建游标结束标志变量...; 见效果: mysql> DELETE FROM test1; Query OK, 9 rows affected (0.00 sec) mysql> SELECT * FROM test1; Empty...set (0.00 sec) mysql> CALL proc1(); Query OK, 0 rows affected (0.02 sec) mysql> SELECT * from test1;...游标⽤来对查询结果进⾏遍历处理2. 游标的使⽤过程:声明游标、打开游标、遍历游标、关闭游标 3. 游标只能在存储过程和函数中使⽤ 4. ⼀个begin end中只能声明⼀个游标 5.

    2.2K40

    数据库开发中比较少用的功能

    TRIGGER 触发器名 BEFORE 或 AFTER # 触发时间 INSERT 或UPDATE 或 DELETE # 监视事件 ON 表名 # 监视地点 FOR EACH ROW #在mysql...END # 结束触发 # 查看触发器 SHOW TRIGGERS; # 删除触发器 DROP TRIGGER 触发器名; 监控insert行为时,引用变量new,监控delete行为时,引用变量...# 声明游标 DECLARE 游标名 CURSOR FOR select语句; # 设置触发边界标志 DECLARE EXIT HANDLER FOR NOT FOUND 表达式; # 打开游标 OPEN...游标名; # 取值 FETCH游标名INTO 变量1, 变量2 ......; # 关闭游标 CLOSE 游标名; # 循环读取游标数据,结束条件是判断是否去到最后一条数据(事先计算出来的总数)。...的cursor中可以declare exit或continue handler for not fond来操作越界标志

    11810

    Mysql 游标

    [mysql游标的用法及作用] 例子: 当前有三张表A、B、C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中; 常规思路就是将B中查询出来然后通过一个update语句来更新...显然是不现实的;最终找到写一个存储过程然后通过循环来更新C表, 然而存储过程中的写法的就是游标的形式。...游标名称; 注:mysql存储过程每一句后面必须用;结尾,使用的临时字段需要在定义游标之前进行声明。...declare c int; declare n varchar(20); --创建总数变量 declare total int default 0; --创建结束标志变量...total+c; end loop; 在MySql中,造成游标溢出时会引发mysql预定义的NOT FOUND错误,所以在上面使用下面的代码指定了当引发not found错误时定义一个continue

    3.4K70

    mysql存储过程菜鸟教程_mysql存储过程是什么

    本文介绍关于在MySQL存储过程游标使用实例,包括简单游标使用与游标循环跳出等方法 例1、一个简单存储过程游标实例 DELIMITER $$ DROP PROCEDURE IF EXISTS getUserInfo...chinese+_math where UserName=_userName; end loop cursor_loop; close rs_cursor; END$$ DELIMITER ; 例2、mysql...存储过程游标循环跳出现 在MySQL的存储过程中,游标操作时,需要执行一个conitnue的操作.众所周知,MySQL中的游标循环操作常用的有三种,LOOP,REPEAT,WHILE.三种循环,方式大同小异...下面就是一个简单存储过程的例子: drop procedure IF EXISTS test_proc; delimiter // create procedure test_proc() begin — 声明一个标志...上述存储过程的例子中只使用了一个游标,那么如果要使用两个或者更多游标怎么办,其实很简单,可以这么说,一个怎么两个就是怎么的。

    4.7K10

    MySQL存储过程了解一下

    命令行创建存储过程: 如果是在MySQL命令行创建存储过程,则需要临时的修改语句分隔符,因为MySQL默认语句分隔符是;,会使存储过程中的语句被直接解析而导致语法错误。...创建游标: DECLARE 游标名称 CURSOR FOR sql查询; 打开游标: OPEN 游标名称; 使用游标: FETCH 游标名称 INTO 变量1 [,变量2]......关闭游标: CLOSE 游标名称; CLOSE释放游标使用的所有内部内存和资源,因此每个游标不再需要时都应该关闭。游标关闭后不能使用,如果需要使用则需要重新打开游标。...: 1329 - No data - zero rows fetched, selected, or processed 该异常对应的SQLSTATE为02000,所以需要指定句柄捕获这种异常情况来给标志赋值...,后续就可以通过这个标志来判断数据集循环读取结束。

    1.3K20

    mysql 学习笔记

    mysql运行很卡时,这个命令查找当前正在跑的sql,然后找到其id,方便将其kill掉 c) kill掉指定id的sql操作 mysqladmin -h 服务器 -u用户名 -p kill id号...四、自定义函数,游标,存储过程 a) 先解决命令行模式下;号的问题 因为;是默认的命令结束符号,写自定义函数或存储过程的时候,本身就会包含;符号,导致命令行下,mysql误认为存储过程代码结果,解决办法...CREATE PROCEDURE test(IN min_id INT) 4 5 BEGIN 6 7 DECLARE _done INT DEFAULT 0; 8 -- 判断游标是否结束的标志...// 4 5 CREATE PROCEDURE p_test_cursor() 6 7 BEGIN 8 DECLARE _done INT DEFAULT 0; -- 判断游标是否结束的标志...的游标是以临时表实现的,性能不怎么样,如果游标中处理上十万条数据,就比较慢。

    1.1K70

    mysql数据库优化大全

    查询的结果用于“插、删、改”的不能nolock !查询的表属于频繁发生页分裂的,慎用nolock !...44,我们应该为数据库里的每张表都设置一个ID做为其主键,而且最好的是一个INT型的(推荐使用UNSIGNED),并设置上自动增加的AUTO_INCREMENT标志。...25.尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该考虑改写。 26.使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题,基于集的方法通常更有效。...27.与临时表一样,游标并不是不可使 。对小型数据集使用 FAST_FORWARD 游标通常要优于其他逐行处理方法,尤其是在必须引用几个表才能获得所需的数据时。...三、 缓存 缓存之所以有效,主要是因为程序运行时对内存或者外存的访问呈现局部性特征,局部性特征为空间局部性和时间局部性两方面。

    1.1K20

    mysql存储过程之游标

    MySQL5 中添加了存储过程的支持。  大多数SQL语句都是针对一个或多个表的单条语句。并非所有的操作都怎么简单。...经常会有一个完整的操作需要多条才能完成  存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件。虽然他们的作用不仅限于批处理。...,特此总结与一下 使用游标 MySQL5添加了对游标的支持  只能用于存储过程  直接上一个已经完善的存储过程,用于对表数据的copy DELIMITER $$ USE `chy2019` $$...pay_time, product, source FROM cms_aw_order WHERE source = p_source ; -- 设置结束标志...关于MySQL 5使用的 MySQL错误代码列表,请参阅 http://dev.mysql.com/doc/mysql/en/error-handling.html 。

    2.8K40

    MySQL入门常用命令大全

    则键入以下命令: mysql -h110.110.110.110 -uroot -p123; 注:h与IP地址、u与root之间可以不用空格,p也一样。...不加local的区别是: (2.1)MySQL客户端与服务端在同一台主机时,不加LOCAL是一样的,因为,因为默认从服务器端读取文件。...(2.2)MySQL客户端与服务端不在同一台主机时,即使用本MySQL客户端将本地数据导入远程MySQL,需要LOCAL。 (3)默认域分隔符为Tab,空格或其它分隔符需显示指定。...每个游标区都有一个名字,用户可以SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。 游标的操作主要用于存储过程中用来书写过程化的SQL,类似于Oracle的PL/SQL。...这个语句指定的打开游标读取下一行(如果有下一行的话),并且推进游标指针至该行。

    3.9K20

    通过cursor游标讲解,带你初步搞懂python操作mysql数据库

    01 什么是游标游标,通俗的解释就是"游动的标志",这是数据库中一个很重要的概念。...3 利用python连接数据库 1)以python连接mysql数据库为例 使用python连接数据库的时候,会经常使用游标这个功能。我们以python连接mysql数据库来说明使用游标的好处。...当我们使用python连接mysql的时候,那么python就相当于是mysql服务器的一个客户端,我们利用python这个client去操纵mysql的server。...在pymysql中操作数据库,就是使用游标这种方式来获取表中的数据。 2)使用游标的操作步骤 首先,使用pymysql连接上mysql数据库,得到一个数据库对象。...password='123456',port=3306,charset='utf8') 注意: 我们要操作的是huangwei这个数据库中的表,因此在连接的时候使db这个参数来指明要使用哪一个数据库;由于mysql

    10.9K85
    领券