我知道,与MySQL,你可以写SQL语句成.sql文件并运行mysql命令行像这样的文件:如何将变量传递给mysql脚本?
mysql> source script.sql
我如何通过一个变量的脚本?例如,如果我想运行检索部门中所有员工的脚本,我希望能够将部门编号作为变量传递。
我不想通过shell脚本运行查询。我从mysql命令行运行了简单的查询。我厌倦了一直重新输入它们,并为它们编写shell脚本将会过度。
我知道,与MySQL,你可以写SQL语句成.sql文件并运行mysql命令行像这样的文件:如何将变量传递给mysql脚本?
mysql> source script.sql
我如何通过一个变量的脚本?例如,如果我想运行检索部门中所有员工的脚本,我希望能够将部门编号作为变量传递。
我不想通过shell脚本运行查询。我从mysql命令行运行了简单的查询。我厌倦了一直重新输入它们,并为它们编写shell脚本将会过度。
像这样:
set @department := 'Engineering';
然后,参考@department
你需要的地方在script.sql:
update employee set salary = salary + 10000 where department = @department;
你真的应该寻找这样做的更合适的方式。我会猜测你试图通过shell脚本运行mysql查询。你应该改用PERL或PHP之类的东西。
#!/bin/bash
#verify the passed params
echo 1 cmd arg : $1
echo 2 cmd arg : $2
export db=$1
export tbl=$2
#set the params ... Note the quotes (needed for non-numeric values)
mysql -uroot -pMySecretPaassword \
-e "set @db='${db}';set @tbl='${tbl}';source run.sql ;" ;
#usage: bash run.sh isg_pub_en MetaEntity
#
#eof file: run.sh
--file:run.sql
SET @query = CONCAT('Select * FROM ', @db , '.' , @tbl) ;
SELECT 'RUNNING THE FOLLOWING query : ' , @query ;
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
--eof file: run.sql
你可以重新使用来自from the following project
整个概念