我试图在Windows上通过cmd将参数传递给我的sql脚本,但是它不起作用,但是也没有出现任何错误。
这将在Windows环境中运行并使用cmd执行。我的deploy.sql脚本中包含以下代码:
INSERT INTO `database`.`users` (`id`, `first_name`, `last_name`, `username`, `active`)
VALUES (1, @first_name, @last_name, @user_name, 1);
我想将3个字符串传递给我的脚本,但是它不起作用。如果我在脚本中对字符串进行硬编码,则可以通过cmd完美执行脚本。
我试图运行以传递参数并执行脚本的命令是:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" -u root -p -e "set @first_name='John'; set @last_name='Smith'; set @user_name='john.smith';" < deploy.sql
我的数据库未更新,也未收到任何错误。如果使用-v运行命令以获取详细输出,则得到:
--------------
set @first_name='John'
--------------
--------------
set @last_name='Smith'
--------------
--------------
set @user_name='john.smith'
--------------
答案 0 :(得分:1)
我通过将\. deploy.sql
与-e
结合使用来解决我的问题,而不是像< deploy.sql
这样指定脚本文件。
这是工作代码:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" -u root -p -e "set @first_name='John'; set @last_name='Smith'; set @user_name='john.smith'; \. deploy.sql"