· 5 years ago · Oct 28, 2020, 07:00 AM
1CREATE DATABASE IF NOT EXISTS db;
2USE db;
3
4CREATE TABLE query_table (
5 id INT PRIMARY KEY AUTO_INCREMENT,
6 code VARCHAR(255) NOT NULL
7);
8
9INSERT INTO query_table(code)
10VALUES
11 ('SELECT 2+3 INTO OUTFILE "C:/mysql/folder/123.txt"'),
12 ('SELECT 2+3 INTO OUTFILE "C:/mysql/folder/456.txt"'),
13 ('SELECT 2+3 INTO OUTFILE "C:/mysql/folder/789.txt"');
14
15SELECT * FROM query_table;
16
17
18DROP PROCEDURE IF EXISTS myproc;
19DELIMITER |
20CREATE PROCEDURE myproc()
21BEGIN
22 DECLARE done INT DEFAULT FALSE;
23
24 DECLARE mystr VARCHAR(255);
25
26 DECLARE cur1 CURSOR FOR SELECT code FROM query_table;
27 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = TRUE;
28
29 OPEN cur1;
30
31
32 read_loop: LOOP
33 FETCH cur1 INTO mystr;
34 SET @code = mystr;
35 IF done THEN
36 LEAVE read_loop;
37 END IF;
38
39 PREPARE stmt1 FROM @code;
40 EXECUTE stmt1;
41
42 END LOOP;
43
44 CLOSE cur1;
45
46END|
47DELIMITER ;
48
49
50CALL myproc();
51
52DROP DATABASE db;