在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
游标select检索返回的一组行称为结果集,结果集里的行都是根据你输入的sql语句检索出来的,如果不使用游标,你将没有办法得到第一行,前十行或者是下一行 下面是一些常见的游标现象和特性
下面是使用游标的步骤
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游标触发器内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论