mysql - 带有游标的 MySQL 存储过程
问题描述
从表“redis-state”我想用光标在表中获取数据并编写了这个过程,但是我得到了一个错误
声明未找到 1064 错误代码
在第 10 行。
目的是打印表格的所有行。表格中的每个条目打印一次。
[![在此处输入图像描述][2]][2]
CREATE PROCEDURE redisatestatedata()
BEGIN
DECLARE macaddress varchar(50);
DECLARE redisstate varchar(50);
DECLARE atehistorystate varchar(50);
DECLARE data_list varchar(50000);
DECLARE done INT DEFAULT FALSE;
DECLARE data_cursor CURSOR FOR
SELECT macaddress,redisstate,atehistorystate
FROM redis-atestate;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET done = TRUE;
open data_cursor;
GET_DATA:loop FETCH data_cursor INTO
macaddress,redisstate,atehistorystate;
IF v_finished = 1 THEN
leave get_data;
ENDIF;
SET data_list = concat("Difference in state ATE:",macaddress,": redis ",redisstate,": dbstate ",atehistorystate);
SELECT data_list;
loop get_data;
CLOSE data_cursor;
END;
解决方案
我认为问题在于这个声明:
DECLARE done INT DEFAULT FALSE;
您正在尝试将默认值 false 分配给数据类型 INT?
推荐阅读
- redux - 为不同的请求获得相同的状态
- javascript - 忽略 GET 表单中未选中的复选框
- c - 为什么可以将 mismatch 参数传递给 isdigit 函数?
- amazon-web-services - 拒绝除一个角色之外的所有角色的 AWS Secrets Manager 资源策略
- r - 替换包含转义字符的文件头
- c - 在 C 中的编译指示宏中插入双引号
- angular - 仅在可观察发射期间使用 NgIf 有条件地显示元素
- java - 在android studio中将文件下载代码添加到webview应用程序时无法解决错误
- pandas - 熊猫 groupby()、transform() 和 ffill()
- xamarin.forms - 如何为非商店 UWP 应用程序获取受信任的代码签名证书 (.pfx)?