用mysql工作台执行代码块

67up9zun  于 2021-06-15  发布在  Mysql
关注(0)|答案(0)|浏览(303)

我想同时执行多个mysql查询块(串联,而不是并行)。我不需要原子操作。以下是一个玩具示例:

在mysql工作台中,我可以通过将光标从一行移动到下一行并按ctrl+enter来实现这一点。更好的是,我可以选择块并按ctrl+shift+enter。
但是,如果我想快速地遍历几个这样的块,那么必须单独选择每个块就变得很难了。我希望能把它变成一个程序:

DELIMITER //
CREATE PROCEDURE do_sum()
BEGIN
CREATE TABLE IF NOT EXISTS ttt (col INT);
LOAD DATA INFILE "/var/lib/mysql-files/data.csv" INTO TABLE ttt;
SET @my_sum := (SELECT SUM(col) FROM ttt);
DROP TABLE ttt;
SELECT @my_sum; 
END//
DELIMITER ;

不幸的是,这失败了 Error Code 1314. LOAD DATA is not allowed in stored procedures . 正如文档中所解释的,只有一部分命令在过程中工作,不包括像 LOAD DATA .
我也愿意
将查询转换为复合查询,例如 bash 一个人可以执行 echo a && echo b . (我试过了 BEGIN ... END 但在像这样的构造之外似乎不起作用 CREATE PROCEDURE .)
以某种方式向mysql workbench指定,如果我在光标位于该块中的任何位置时按ctrl+enter,那么查询应该一起执行(mysql workbench在每个查询和第一个行号之间放置一个蓝色圆圈,因此我希望在上面的屏幕截图中有一个蓝色圆圈。)
这可能吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题