我想知道以下命令(来自.bat脚本):
(1)连接到mysql实例一次,然后执行脚本#1,然后执行脚本#2,或者(2)重新连接每个sql脚本?
mysql -B -b -h%HOST% -u%USER% -p%PASSWORD% %SCHEMA% < "scripts\create_and_populate.sql" < "scripts\update_joomla_article.sql"
我感觉它重新连接了。如果是这样,我将如何更改.bat脚本以在不重新连接的情况下执行一个sql脚本。干杯:)
修改
我最近才发现,令我非常遗憾:-Z,这个命令实际上并没有像我预期的那样工作。
mysql ... < script1 < script2 < script3
似乎最初起作用,直到我发现链中只有 last 脚本才真正执行。尽管如此,我仍然欢迎任何有关如何以与科林皮卡德所建议的不同方式完成此任务的建议。
答案 0 :(得分:1)
你可以使用SELECT CONNECTION_ID( );
的几个脚本来确定你的理论,然后是这样的:
copy scripts\create_and_populate.sql+scripts\update_joomla_article.sql scripts\temp\create_update.sql
mysql -B -b -h%HOST% -u%USER% -p%PASSWORD% %SCHEMA% < "scripts\temp\create_update.sql"
del scripts\temp\create_update.sql
(警告:我没有测试过!先试试吧!)
答案 1 :(得分:0)
还有一个建议,这有用吗?
mysql -e script1 -e script2 -e script3