mysql - 使用 MySQL Workbench 执行代码块
问题描述
我想同时执行一组多个 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
。) - 以某种方式向 MySQL Workbench 指定,如果我在光标位于此块内的任何位置时按 Ctrl+Enter,那么查询应该一起执行。(MySQL Workbench 在每个查询和第一行号之间放置了一个蓝色圆圈,所以我希望在上面的屏幕截图中有一个蓝色圆圈。)
这可能吗?
解决方案
推荐阅读
- c++ - 我错过了cin.get()的东西吗?
- python - c$50 金融非整数被拒绝导致 Buy 未通过检查 50
- gps - 逆向工程 delorme PN60w 固件以修复 GPS 翻转
- javascript - 为什么使用忽略垃圾工件的方法替换段落内容不起作用?
- java - 使用 while 循环进行数据验证时出现问题
- python - 如何重定向输出
在python中将对象键入文本文件? - python - 使用邮递员的 GET 请求正在工作,但它不适用于 python (HTTPSConnectionPool)
- node.js - 有没有办法使用嵌套创建批量更新 prisma 中的对象
- vue.js - 是否可以使用 Vue.js 将数据从模板发送到脚本?(v-bind 的逆)
- c - 为什么我的第一个值没有正确打印,但后面的每个值都正确打印