mysql游标获取而不声明变量(可能吗?)

mysql游标获取而不声明变量(可能吗?),mysql,cursor,Mysql,Cursor,我有一个游标,声明如下: DECLARE staging_cur CURSOR FOR SELECT col1, col2, ...... FROM crawl_db.staging_listing WHERE is_deleted = FALSE; 然后,我获取每一行,执行一些检查,然后将该行插入另一个(生产)数据库 我意识到我需要为表暂存列表的每个对应列(col1,col2…)声明一个变量(col1,col2…)。问题是这个表包含90-100列,声明所有变量非常麻烦 看来应该有比这更好的

我有一个游标,声明如下:

DECLARE staging_cur CURSOR FOR
SELECT 
col1, col2, ......
FROM crawl_db.staging_listing
WHERE is_deleted = FALSE;
然后,我获取每一行,执行一些检查,然后将该行插入另一个(生产)数据库

我意识到我需要为表暂存列表的每个对应列(
col1,col2…
)声明一个变量(
col1,col2…
)。问题是这个表包含90-100列,声明所有变量非常麻烦


看来应该有比这更好的办法。是否有某种方法可以访问游标当前行的列,而不必声明单独的变量来保存列值

如果需要将行插入到另一个表中,那么更好的方法是使用insert…SELECT语句。尽量避免使用游标


.

变量的用途是什么?其中一些用于“执行一些检查”步骤。其中大多数用于“插入到生产数据库”步骤。实际上,每行有一些检查和可选插入。基于这些可选的插入,我们在进一步的插入中使用它们自动生成的插入ID。(我已经更新了我的问题)如果可能的话-尝试使用DML语句:INSERT、UPDATE等。;否则,您将不得不创建这些变量。
OPEN staging_cur;
the_loop: LOOP

  FETCH staging_cur
  INTO col1_val, col2_val,.....;

  -- perform some checks and some optional inserts
      -- for example, if city with given name is not found in production DB, insert it

  -- insert into production db

END LOOP the_loop;