通过cmd运行时如何将参数传递给MySQL脚本?

时间:2019-05-21 11:30:20

标签: mysql sql cmd

我试图在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'
--------------

1 个答案:

答案 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"