使用MySQL Workbench执行代码块

时间:2019-01-10 18:14:24

标签: mysql mysql-workbench

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

enter image description here

我可以在MySQL Workbench中通过将光标从一行移到另一行并按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在每个查询和第一行号之间放置一个蓝色圆圈,因此我希望在上面的屏幕截图中有一个蓝色圆圈。)

这可能吗?

0 个答案:

没有答案