mysql数据库触发器(MySQL中使用游标触发器的方法)
类别:数据库 浏览量:1813
时间:2021-10-23 10:53:22 mysql数据库触发器
MySQL中使用游标触发器的方法游标
select检索返回的一组行称为结果集,结果集里的行都是根据你输入的sql语句检索出来的,如果不使用游标,你将没有办法得到第一行,前十行或者是下一行
下面是一些常见的游标现象和特性
- 能够标记游标为只读,是数据能够读取,但不能被更新或者删除
- 能控制可以执行的定向操作(向前,向后,第一,最后、绝对位置和相对位置等)
- 能标记某些行为可编辑的,而另一些行为不可编辑的
- 能规定范围,使游标对创建它的特定请求或者是所有请求可访问
- Cursor declarations must appear before handler declarations and after
- variable and condition declarations.
- 需要注意的是,打开一个游标时,游标并不指向第一条记录,而是指向第一条记录的前边
下面是使用游标的步骤
- 声明游标 – 在这个过程中你还没有开始检索数据
- 打开游标以供使用
- 检索各行
- 关闭游标,释放游标
|
DECLARE cs CURSOR FOR SELECT * FROM customers WHERE cust_email IS NULL ; |
本以为万事大吉,但却给我报错
从语法上来看没有什么问题
试着在 cs 前面加上@,运行仍然报错
还有人说游标只能在存储过程中使用,是这样吗?
现在我们来试一试在存储过程中使用游标
|
CREATE PROCEDURE proce1 () BEGIN DECLARE cur1 CURSOR FOR SELECT * FROM customers WHERE cust_id IS NULL tianyoutianyou; END |
仍然出错
再次更改
|
delimiter // CREATE PROCEDURE proce1 () BEGIN DECLARE cur1 CURSOR FOR SELECT * FROM customers WHERE cust_id IS NULL ; END |
这次我们成功地声明游标
是不是因为我们修改了分隔符然我们成功地创建游标了呢?
我们再试试
|
CREATE PROCEDURE proce1() DECLARE cur1 CURSOR FOR SELECT * FROM customers WHERE cust_id IS NULL ; |
这样也是错误的,下面再试试不使用存储过程地语句能否成功创建游标
|
delimiter // DECLARE cur2 CURSOR FOR SELECT * FROM orders ; |
或者是这样
|
delimiter // DECLARE cur2 CURSOR FOR SELECT * FROM orders // |
这两种也8行
试了这么多次,唯一成功的只有下面这种语句
|
delimiter // CREATE PROCEDURE proce1() BEGIN DECLARE cur1 CURSOR FOR SELECT * FROM customers WHERE cust_id IS NULL ; END |
下面我们用游标来检索数据
很遗憾,MySQL中没有像Oracle中 %ROWTYPE 般的数据类型,我们下面试着使用游标来检索customers表中的某一类数据类型
触发器
触发器时特定的存储过程,在数据库发生特定活动时自动进行,一般来说,约束的处理比触发器更快,因此在可能的时候,应该尽可能地使用约束。
到此这篇关于MySQL中使用游标触发器的方法的文章就介绍到这了,更多相关mysql游标触发器内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/weixin_44634406/article/details/113717366
您可能感兴趣
- mysql架构示意图(MySQL创建横向直方图的解决方案)
- mysql的存储方法(MySQL中的binary类型使用操作)
- mysql 触发器是什么(MySQL触发器的使用)
- mysql查询逗号分割字符串(MySQL 字符串拆分实例无分隔符的字符串截取)
- mysql中json的支持(MySQL中json字段的操作方法)
- mysql8.0安装及配置(MySQL 8.0 之不可见列的基本操作)
- mysql创建表的基本步骤(mysql中操作表常用的sql总结)
- mysqlcount使用方法(详解 MySQL中count函数的正确使用方法)
- mysql数据库导入错误怎么处理(MySQL数据库导入导出数据之报错解答实例讲解)
- mysql如何解决主从延迟(MySQL主从延迟问题解决)
- mysql如何修改列的默认值(mysql查询的时候给字段赋默认值操作)
- Mysql官方性能测试工具mysqlslap的使用简介(Mysql官方性能测试工具mysqlslap的使用简介)
- mysql发生系统错误(MySQL too many connections错误的原因及解决)
- Mysql中CONCAT、CONCAT_WS字符串拼接函数
- mysql的事务隔离级别怎么实现(mysql、oracle默认事务隔离级别的说明)
- 深入理解mysql日志(mysql 重要日志文件汇总)
- 谷雨前,吃牛羊肉别忘了吃河鲜,除湿还清热,加紫苏一炒特解馋(吃牛羊肉别忘了吃河鲜)
- 紫苏牛肉锅里滚一滚,香的鼻子都要掉了(紫苏牛肉锅里滚一滚)
- 每天都吃水果的好处(每天吃水果的好处与功效)
- 苹果15价格(苹果15价格512g官网)
- 春节放假几天(春节放假几天2023法定几天)
- 今天 3月13日,31年前,一个英雄少年感动了中国(今天3月13日31年前)
热门推荐
- apache的优化建议(Apache 网站速度更快)
- vuex原理及使用方法(Vuex状态机的快速了解与实例应用)
- dedecms图集栏目(Dedecms图集上传zip压缩包解压图片顺序不对问题的解决方法)
- mysqlupdate原理(MySQL UPDATE 语句的非标准实现代码)
- mysql8.0.15安装详细教程(mysql8.0.11数据目录迁移的实现)
- 如何使java与sqlserver数据库连接(java连接mysql数据库 java连接sql server数据库)
- mysql常用优化方法(理解MySQL查询优化处理过程)
- SQL Server 数据库自动备份
- wdc真正的底层公链(LiteSpeed服务器用htaccess的防盗链代码)
- iis网站提示401 未授权:由于凭据无效,访问被拒绝
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9