1. 但是在游标定义之前好象不能进行insert等操作,该怎么解决
   ==>是指在游标定义之前不能对这些临时表Temp1, Temp2 进行Insert操作吗?
      应该不会吧。用普通的SQL语句处理就可以了啊。2. 有报错信息吗?
   是在建Procedure的时候报错呢还是在运行的时候报错?
   cur_2有没有释放掉?
   是否可以采取其它措施以避免重新定义cur_2(例如将cur_2对应的查询结果放到指定的Table中,然后重新运行cur_2,或者将cur_2放到另外一个Procedure中去建立)?

解决方案 »

  1.   

    按mysql手册上说明,游标的使用中顺序是十分重要的,首先要进行变量声明,然后声明条件,随后声明游标,再后面才是声明错误处理器。如果你没有按顺序声明,系统会提示错误信息。按照这个说明,我第一问中,对临时表temp1、temp2的insert操作就不能放在游标之前,但假如
    这些insert不放在游标定义的前,游标定义中的那个表中根本还没生成数据。我的第二问同样根据mysql手册上的说明,不能在其它位置定义新的游标(二级游标).(有释放的,建Procedure的时候报错)