我有一个SQL过程,该过程具有针对游标的声明语句
DECLARE cur1 CURSOR FOR SELECT count(value1), value1
FROM someDB.table1
INNER JOIN someDB.table2 ON table1.Id=table2.Id and
A_code = input_code1;
AND B_code = input_code2
GROUP BY value1
ORDER BY count(value1) desc
LIMIT 5;
OPEN cur1;
read_loop: LOOP
FETCh cur1 INTO value2,value1;
set value = CONCAT(value2,' ',value1);
select 'loop start';
select value;
-- for now, I'm just trying to print but here I'll have an insert statement
IF done THEN
LEAVE read_loop;
END IF;
select语句确实返回完美的值,但是当我尝试在表中插入值时,它说value1不能为null,当我只运行select语句时不确定该值为什么不为null?光标。有人可以帮我解决这个问题吗
答案 0 :(得分:0)
问题是我声明了游标的变量名与表中的列名相同, 因此,我开始调试,发现cursor的值变为空,开始更改变量的名称并解决了该问题。看起来MySQL存在冲突,其中变量名不能与表列名相同。