我是靠谱客的博主 可爱白昼,最近开发中收集的这篇文章主要介绍MYSQL 使用存储过程,结合游标循环插入数据demo,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

创建游标

CLOSE释放游标使用的所有内部内存和资源,因此在每个游标不再需要时都应该关闭

CREATE PROCEDURE processdemo()
BEGIN
DECLARE product_id CURSOR
FOR
SELECT id from product;
--打开和关闭游标
OPEN product_id;
CLOSE product_id;
END;

从游标中检索单个行(第一行)

CREATE PROCEDURE processProductName()
BEGIN
-- DECLARE local VARIABLES
DECLARE p_name INT;
-- DECLARE the CURSOR
DECLARE product_name CURSOR
FOR
SELECT productName from product;
-- OPEN the CURSOR
OPEN product_name;
-- Get productName form product
FETCH product_name INTO p_name;
-- CLOSE the CURSOR
CLOSE product_name;
END;

使用游标循环处理数据

CREATE PROCEDURE processdemo()
BEGIN
#声明一个开关变量flag用于循环结束判断默认是true
DECLARE flag INT DEFAULT TRUE;
-- Declare local variables,用于存储产品信息中的价格和名称
DECLARE p_price VARCHAR(45);
DECLARE n_name
VARCHAR(100);
#申明一个游标,名字叫liuma,因为游标指向的表内有两个字段,需要两个变量存储,所有得申明两个变量;
DECLARE liuma CURSOR
FOR
SELECT price,productName FROM product;
-- Create a table to store the results
CREATE TABLE IF NOT EXISTS price_demo(
id INT auto_increment PRIMARY KEY ,
price VARCHAR(45),
product_name VARCHAR(100)
);
-- Open the cursor
OPEN liuma;
-- Loop through all rows
REPEAT
-- Get product price
FETCH liuma INTO p_price,n_name;
-- Insert price into price_demo
INSERT INTO price_demo(price,product_name)
VALUES(p_price,n_name);
-- End of loop
UNTIL flag = FALSE
END repeat;
-- Close the cursor
CLOSE liuma;
END;
-- 调用存储过程
call
processdemo;
-- 查看存储状态
show
PROCEDURE STATUS;
-- 查看创建过程
show CREATE PROCEDURE processdemo;
-- 调用结束删除存储过程
drop PROCEDURE IF EXISTS
processdemo
-- 查看结果
SELECT *from price_demo

最后

以上就是可爱白昼为你收集整理的MYSQL 使用存储过程,结合游标循环插入数据demo的全部内容,希望文章能够帮你解决MYSQL 使用存储过程,结合游标循环插入数据demo所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部