如何禁用从 MYSQL Workbench 上的 EXECUTE STATEMENT 返回的结果集
How can I disable the result set returned from an EXECUTE STATEMENT on MYSQL Workbench
我正在使用 MySQL 5.6 版本的 InnoDB,我已经创建了一个存储过程来 运行 分析 TABLE 我模式中的所有对象。
因此,我使用 CURSOR 和每个 FETCH 执行循环,我 运行 一个 PREPARE STATEMENT EXECUTE,如下所示:
...
OPEN CURSOR_TABLE_LIST;
LOOP_TABLE_LIST: LOOP
FETCH CURSOR_TABLE_LIST INTO vTableName;
SET @full_stmt = CONCAT('ANALYZE TABLE mySchema.', vTableName);
PREPARE stmt FROM @full_stmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
IF vExitLoop THEN
CLOSE CURSOR_TABLE_LIST;
LEAVE LOOP_TABLE_LIST;
END IF;
END LOOP LOOP_TABLE_LIST;
...
问题是:每个准备语句执行分析过程 return 一个有 4 列的结果集,我正在使用 MySQL Workbench。因此,如果在我的架构中存在太多 table,我的 Workbench 会冻结并停止 运行ning。
我怎样才能使 EXECUTE STATEMENT return 静音、禁用、忽略或抑制?
我知道对于简单的 SELECT 语句我可以使用这个:
SET @foo = (SELECT COL FROM TAB);
但是我可以对 PREPARE STATEMENT 结构做类似的事情吗?
我尝试过的另一种可能的解决方案是在另一个“通用过程”中准备语句块的编程,但我没有找到一种方法来使 CALL PROCEDURE 中的 return 静音,或者...
CALL SP_EXECUTE_IMMEDIATE('ANALYZE TABLE mySchema.myTable');
我是 MySQL 的新手...也许我可以将 return 放在 table 中吗?
它与 PLSQL 或 T-SQL 完全不同......有什么想法吗?
非常感谢!
[]的
分析 table 允许您选择性地分析多个 tables
ANALYZE [NO_WRITE_TO_BINLOG | LOCAL]
TABLE tbl_name [, tbl_name]
https://dev.mysql.com/doc/refman/5.6/en/analyze-table.html
也许这比您刚才采用的一次一个方法更合适。
我正在使用 MySQL 5.6 版本的 InnoDB,我已经创建了一个存储过程来 运行 分析 TABLE 我模式中的所有对象。 因此,我使用 CURSOR 和每个 FETCH 执行循环,我 运行 一个 PREPARE STATEMENT EXECUTE,如下所示:
...
OPEN CURSOR_TABLE_LIST;
LOOP_TABLE_LIST: LOOP
FETCH CURSOR_TABLE_LIST INTO vTableName;
SET @full_stmt = CONCAT('ANALYZE TABLE mySchema.', vTableName);
PREPARE stmt FROM @full_stmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
IF vExitLoop THEN
CLOSE CURSOR_TABLE_LIST;
LEAVE LOOP_TABLE_LIST;
END IF;
END LOOP LOOP_TABLE_LIST;
...
问题是:每个准备语句执行分析过程 return 一个有 4 列的结果集,我正在使用 MySQL Workbench。因此,如果在我的架构中存在太多 table,我的 Workbench 会冻结并停止 运行ning。
我怎样才能使 EXECUTE STATEMENT return 静音、禁用、忽略或抑制? 我知道对于简单的 SELECT 语句我可以使用这个:
SET @foo = (SELECT COL FROM TAB);
但是我可以对 PREPARE STATEMENT 结构做类似的事情吗? 我尝试过的另一种可能的解决方案是在另一个“通用过程”中准备语句块的编程,但我没有找到一种方法来使 CALL PROCEDURE 中的 return 静音,或者...
CALL SP_EXECUTE_IMMEDIATE('ANALYZE TABLE mySchema.myTable');
我是 MySQL 的新手...也许我可以将 return 放在 table 中吗? 它与 PLSQL 或 T-SQL 完全不同......有什么想法吗? 非常感谢! []的
分析 table 允许您选择性地分析多个 tables
ANALYZE [NO_WRITE_TO_BINLOG | LOCAL]
TABLE tbl_name [, tbl_name]
https://dev.mysql.com/doc/refman/5.6/en/analyze-table.html
也许这比您刚才采用的一次一个方法更合适。