这篇文章主要为大家详细介绍了MySQL使用游标触发器的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小玲来看看吧!
select检索返回的一组行称为结果集,结果集里的行都是根据你输入的sql语句检索出来的,如果不使用游标,你将没有办法得到第一行,前十行或者是下一行
下面是一些常见的游标现象和特性
下面是使用游标的步骤
代码如下:
DECLARE cs CURSOR
FOR
SELECT *
FROM customers
WHERE cust_email IS NULL;
MySQL中使用游标触发器的方法
本以为万事大吉,但却给我报错
从语法上来看没有什么问题
试着在 cs 前面加上@,运行仍然报错
还有人说游标只能在存储过程中使用,是这样吗?
现在我们来试一试在存储过程中使用游标
代码如下:
CREATE PROCEDURE proce1
()
BEGIN
DECLARE cur1 CURSOR
FOR
SELECT *
FROM customers
WHERE cust_id IS NULL tianyoutianyou;
END
MySQL中使用游标触发器的方法
仍然出错
再次更改
代码如下:
delimiter //
CREATE PROCEDURE proce1
()
BEGIN
DECLARE cur1 CURSOR
FOR
SELECT *
FROM customers
WHERE cust_id IS NULL;
END
MySQL中使用游标触发器的方法
这次我们成功地声明游标
是不是因为我们修改了分隔符然我们成功地创建游标了呢?
我们再试试
代码如下:
CREATE PROCEDURE proce1()
DECLARE cur1 CURSOR
FOR
SELECT *
FROM customers
WHERE cust_id IS NULL;
MySQL中使用游标触发器的方法
这样也是错误的,下面再试试不使用存储过程地语句能否成功创建游标
代码如下:
delimiter //
DECLARE cur2 CURSOR
FOR
SELECT *
FROM orders ;
MySQL中使用游标触发器的方法
或者是这样
代码如下:
delimiter //
DECLARE cur2 CURSOR
FOR
SELECT *
FROM orders //
MySQL中使用游标触发器的方法
这两种也8行
试了这么多次,唯一成功的只有下面这种语句
代码如下:
delimiter //
CREATE PROCEDURE proce1()
BEGIN
DECLARE cur1 CURSOR
FOR
SELECT *
FROM customers
WHERE cust_id IS NULL;
END
MySQL中使用游标触发器的方法
下面我们用游标来检索数据
很遗憾,MySQL中没有像Oracle中 %ROWTYPE 般的数据类型,我们下面试着使用游标来检索customers表中的某一类数据类型
触发器时特定的存储过程,在数据库发生特定活动时自动进行,一般来说,约束的处理比触发器更快,因此在可能的时候,应该尽可能地使用约束。
到此这篇关于MySQL中使用游标触发器的方法的文章就介绍到这了,更多相关mysql游标触发器内容请搜索四海网以前的文章或继续浏览下面的相关文章希望大家以后多多支持四海网!
本文来自:http://www.q1010.com/177/19422-0.html
注:关于MySQL使用游标触发器的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。