我想同时(串联而不是并行)执行多个MySQL查询的块。我不需要操作是原子的。这是一个玩具示例:
我可以在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
这样的结构之外使用。)这可能吗?