SQL过程打印光标

时间:2020-04-02 17:43:30

标签: mysql stored-procedures cursor

我有一个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?光标。有人可以帮我解决这个问题吗

1 个答案:

答案 0 :(得分:0)

问题是我声明了游标的变量名与表中的列名相同, 因此,我开始调试,发现cursor的值变为空,开始更改变量的名称并解决了该问题。看起来MySQL存在冲突,其中变量名不能与表列名相同。