在处理大量列时,如何使用mysql游标?
我正在编写一个过程,将多个较小的表中的数据转换为一个包含许多列(~100)的“平面”表 我定义了一个游标,它从较小的表中读取/连接数据 到目前为止,我已经看到“fetch”语义在mysql中与显式变量一起工作。有没有一种方法可以让我做类似这样的事情:“从游标抓取*;后跟插入“ 以下是一个示例(用于单字段插入) 假设temp和jsontable有50列,该如何处理。(获取50个显式变量还是有更好的方法?) [Oracle有一种叫做“批量收集”的东西]在处理大量列时,如何使用mysql游标?,mysql,sql,cursor,relational-database,rdbms,Mysql,Sql,Cursor,Relational Database,Rdbms,我正在编写一个过程,将多个较小的表中的数据转换为一个包含许多列(~100)的“平面”表 我定义了一个游标,它从较小的表中读取/连接数据 到目前为止,我已经看到“fetch”语义在mysql中与显式变量一起工作。有没有一种方法可以让我做类似这样的事情:“从游标抓取*;后跟插入“ 以下是一个示例(用于单字段插入) 假设temp和jsontable有50列,该如何处理。(获取50个显式变量还是有更好的方法?) [Oracle有一种叫做“批量收集”的东西] CREATE PROCEDURE simple
CREATE PROCEDURE simpleproc_insert (OUT param1 INT)
BEGIN
DECLARE done INT DEFAULT FALSE;
declare iden int;
declare msg JSON;
declare insertCursor cursor for select * from temp;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
open insertCursor;
read_loop: LOOP
FETCH insertCursor INTO iden,msg;
IF done THEN
LEAVE read_loop;
END IF;
insert into jsontable(jdoc) values(msg);
END LOOP;
close insertCursor;
END
这听起来是个坏主意为什么?你会建议什么替代方案?我会建议一个标准化设计(3NF)有一个标准化设计。此平面表格用于报告目的,而不是应用程序事务的一部分!!很公平。!!!