我有一个.sql文件,其中包含一组赋值和源文件: 该文件如下所示:
SET @NAME='ABC' SOURCE c:/dev/test.sql SOURCE c:/dev/test1.sql . . . SOURCE c:/dev/test100.sql SET @NAME='MNO' SOURCE c:/dev/test.sql SOURCE c:/dev/test1.sql . . . SOURCE c:/dev/test100.sql使用SET命令对每个赋值重复SOURCE c:/dev/*提到的文件。
有没有办法可以从不同的测试文件中读取文件名,这样我就可以避免我的.sql文件中的代码冗余。
任何帮助,将不胜感激!
谢谢
I have an .sql file with a set of assignments and source files mentioned in it: The file looks like below:
SET @NAME='ABC' SOURCE c:/dev/test.sql SOURCE c:/dev/test1.sql . . . SOURCE c:/dev/test100.sql SET @NAME='MNO' SOURCE c:/dev/test.sql SOURCE c:/dev/test1.sql . . . SOURCE c:/dev/test100.sqlThe files mentioned in the SOURCE c:/dev/* is repeating for each assignment using the SET command.
Is there a way by which I can read the file names from a different test file , so that i can avoid the redundancy of the code inside my .sql file.
Any help would be appreciated!
Thanks
最满意答案
尝试:
文件: /path/to/file/test.sql
SELECT CONCAT('FROM test.sql @`NAME`: ', @`NAME`);文件: /path/to/file/allTestFiles.sql
SOURCE /path/to/file/test.sql SOURCE /path/to/file/test1.sql SOURCE /path/to/file/test2.sql # . # . # . # SOURCE /path/to/file/test100.sql文件: /path/to/file/master.sql
SET @`NAME` := 'ABC'; SOURCE /path/to/file/allTestFiles.sql SET @`NAME` := 'MNO'; SOURCE /path/to/file/allTestFiles.sql测试:
mysql> SOURCE /path/to/file/master.sql Query OK, 0 rows affected (0.00 sec) +--------------------------------------------+ | CONCAT('FROM test.sql @`NAME`: ', @`NAME`) | +--------------------------------------------+ | FROM test.sql @`NAME`: ABC | +--------------------------------------------+ 1 row in set (0.00 sec) +---------------------------------------------+ | CONCAT('FROM test1.sql @`NAME`: ', @`NAME`) | +---------------------------------------------+ | FROM test1.sql @`NAME`: ABC | +---------------------------------------------+ 1 row in set (0.00 sec) +---------------------------------------------+ | CONCAT('FROM test2.sql @`NAME`: ', @`NAME`) | +---------------------------------------------+ | FROM test2.sql @`NAME`: ABC | +---------------------------------------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.00 sec) +--------------------------------------------+ | CONCAT('FROM test.sql @`NAME`: ', @`NAME`) | +--------------------------------------------+ | FROM test.sql @`NAME`: MNO | +--------------------------------------------+ 1 row in set (0.00 sec) +---------------------------------------------+ | CONCAT('FROM test1.sql @`NAME`: ', @`NAME`) | +---------------------------------------------+ | FROM test1.sql @`NAME`: MNO | +---------------------------------------------+ 1 row in set (0.00 sec) +---------------------------------------------+ | CONCAT('FROM test2.sql @`NAME`: ', @`NAME`) | +---------------------------------------------+ | FROM test2.sql @`NAME`: MNO | +---------------------------------------------+ 1 row in set (0.00 sec)Try:
File: /path/to/file/test.sql
SELECT CONCAT('FROM test.sql @`NAME`: ', @`NAME`);File: /path/to/file/allTestFiles.sql
SOURCE /path/to/file/test.sql SOURCE /path/to/file/test1.sql SOURCE /path/to/file/test2.sql # . # . # . # SOURCE /path/to/file/test100.sqlFile: /path/to/file/master.sql
SET @`NAME` := 'ABC'; SOURCE /path/to/file/allTestFiles.sql SET @`NAME` := 'MNO'; SOURCE /path/to/file/allTestFiles.sqlTest:
mysql> SOURCE /path/to/file/master.sql Query OK, 0 rows affected (0.00 sec) +--------------------------------------------+ | CONCAT('FROM test.sql @`NAME`: ', @`NAME`) | +--------------------------------------------+ | FROM test.sql @`NAME`: ABC | +--------------------------------------------+ 1 row in set (0.00 sec) +---------------------------------------------+ | CONCAT('FROM test1.sql @`NAME`: ', @`NAME`) | +---------------------------------------------+ | FROM test1.sql @`NAME`: ABC | +---------------------------------------------+ 1 row in set (0.00 sec) +---------------------------------------------+ | CONCAT('FROM test2.sql @`NAME`: ', @`NAME`) | +---------------------------------------------+ | FROM test2.sql @`NAME`: ABC | +---------------------------------------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.00 sec) +--------------------------------------------+ | CONCAT('FROM test.sql @`NAME`: ', @`NAME`) | +--------------------------------------------+ | FROM test.sql @`NAME`: MNO | +--------------------------------------------+ 1 row in set (0.00 sec) +---------------------------------------------+ | CONCAT('FROM test1.sql @`NAME`: ', @`NAME`) | +---------------------------------------------+ | FROM test1.sql @`NAME`: MNO | +---------------------------------------------+ 1 row in set (0.00 sec) +---------------------------------------------+ | CONCAT('FROM test2.sql @`NAME`: ', @`NAME`) | +---------------------------------------------+ | FROM test2.sql @`NAME`: MNO | +---------------------------------------------+ 1 row in set (0.00 sec)
更多推荐
发布评论