Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在处理大量列时,如何使用mysql游标?_Mysql_Sql_Cursor_Relational Database_Rdbms - Fatal编程技术网

在处理大量列时,如何使用mysql游标?

在处理大量列时,如何使用mysql游标?,mysql,sql,cursor,relational-database,rdbms,Mysql,Sql,Cursor,Relational Database,Rdbms,我正在编写一个过程,将多个较小的表中的数据转换为一个包含许多列(~100)的“平面”表 我定义了一个游标,它从较小的表中读取/连接数据 到目前为止,我已经看到“fetch”语义在mysql中与显式变量一起工作。有没有一种方法可以让我做类似这样的事情:“从游标抓取*;后跟插入“ 以下是一个示例(用于单字段插入) 假设temp和jsontable有50列,该如何处理。(获取50个显式变量还是有更好的方法?) [Oracle有一种叫做“批量收集”的东西] CREATE PROCEDURE simple

我正在编写一个过程,将多个较小的表中的数据转换为一个包含许多列(~100)的“平面”表

我定义了一个游标,它从较小的表中读取/连接数据

到目前为止,我已经看到“fetch”语义在mysql中与显式变量一起工作。有没有一种方法可以让我做类似这样的事情:“从游标抓取*;后跟插入“

以下是一个示例(用于单字段插入)

假设temp和jsontable有50列,该如何处理。(获取50个显式变量还是有更好的方法?)

[Oracle有一种叫做“批量收集”的东西]

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)有一个标准化设计。此平面表格用于报告目的,而不是应用程序事务的一部分!!很公平。!!!