我有一个MySQL更新脚本,我想从命令行运行,但我希望能够传递一个阶段域变量到脚本。
我知道这行不通,但这是我描述我正在努力做的事情的最好方式:
$ -uroot -hlocalhost mydatabase --execute "SET @domain = 'mydomain.dev' " < ./sql/update_domain.sql
在脚本中,我使用@domain变量来更新配置表中的一些配置变量,使用的命令如下:
UPDATE my_cfg SET value = @domain WHERE name = 'DOMAIN';
基本上,我希望在update_domain. sql文件中添加SET @domain前缀。
你知道我该怎么纠正我的做法吗?
4条答案
按热度按时间cyej8jka1#
在批处理文件中:
在SQL文件中:
8i9zcol22#
你可以像这样用
sed
来实现或者update.sql具有
UPDATE
:hl0ma9xz3#
这对我很有效:
...从Capistrano使用system()调用。
i2byvkas4#
我找到了更好的解决办法。
输出:
它也适用于文件重定向。