如何在workbench中禁用mysql EXECUTE命令的结果输出
我试图在mysql工作台中的游标中使用一个准备好的语句。光标作用于一个非常大的数据集,因此它被执行多次。每次显示执行步骤的新结果时。这最终导致mysql workbench崩溃,因为打开的结果窗口太多 在光标中,我执行如下操作:如何在workbench中禁用mysql EXECUTE命令的结果输出,mysql,cursor,prepared-statement,mysql-workbench,Mysql,Cursor,Prepared Statement,Mysql Workbench,我试图在mysql工作台中的游标中使用一个准备好的语句。光标作用于一个非常大的数据集,因此它被执行多次。每次显示执行步骤的新结果时。这最终导致mysql workbench崩溃,因为打开的结果窗口太多 在光标中,我执行如下操作: PREPARE stmt2 FROM @eveningQuery; EXECUTE stmt2; DEALLOCATE PREPARE stmt2; 通常我用的是 set aVar = (EXECUTE stmt2); 使查询静音但执行不会这样工作 有人知道如何
PREPARE stmt2 FROM @eveningQuery;
EXECUTE stmt2;
DEALLOCATE PREPARE stmt2;
通常我用的是
set aVar = (EXECUTE stmt2);
使查询静音但执行不会这样工作
有人知道如何在mysql中禁用EXECUTE命令的输出吗
注意:我了解如何检索变量中的数据,但我想防止的是,它会显示在结果概述中,如下所示
这将使mysql工作台在循环过多时崩溃
编辑,因为它被问及@eveningQuery的一个示例
设置@eveningQuery=CONCAT'select@resultNm:=exists从tb_SplitDay中选择idSplitBill,其中idSplitBill=',idSplitBillVar',and',@columnnamev',=1,softdelete=0'
idSplitBillVar=来自光标的id。
@columnNameEv=我正在可变地填充的列
我添加这些信息是因为有人问过,但在我看来,这并不重要,因为即使是最简单的查询,这个问题仍然存在。当您执行一个准备好的语句时,您将得到一个输出结果。我只想禁用此行为。您使用的查询会创建新的结果集,GUI客户端会多次显示它-
SELECT @resultNm:=EXISTS(
SELECT idSplitBill FROM tb_SplitDay
WHERE idSplitBill =', idSplitBillVar, ' AND ', @columnNameEv ,' = 1 AND softdelete = 0
)
您可以重写此查询,结果集将不会被创建-
SELECT EXISTS(
SELECT idSplitBill FROM tb_SplitDay
WHERE idSplitBill =', idSplitBillVar, ' AND ', @columnNameEv ,' = 1 AND softdelete = 0
)
INTO @resultNm
只是吹毛求疵,但你指的是存储过程而不是游标吗?谢谢你的评论。这是一个在存储过程中定义的游标,但我不认为这会对问题有太大的改变。你能展示一下@eveningQuery quaery的例子吗?我添加了一个查询的例子,但是它并不重要,因为它只需要一个简单的选择按钮,它确实重要。查询可能会创建结果集,您可以尝试避免它。好吧,这似乎可以解决问题,我认为查询的语法特定于一个准备好的语句,但正如您所建议的,它不是。谢谢你的回答,这会让我的生活更轻松。我会尽快给你奖金。