我想同时执行多个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在每个查询和第一个行号之间放置一个蓝色圆圈,因此我希望在上面的屏幕截图中有一个蓝色圆圈。)
这可能吗?
暂无答案!
目前还没有任何答案,快来回答吧!