我知道使用mysql,您可以将SQL语句写入.sql文件,并从mysql命令行运行该文件,如下所示:
mysql> source script.sql
如何将变量传递给脚本?例如,如果我想运行一个检索部门中所有员工的脚本,我希望能够将部门的编号作为变量传递.
我不是试图通过shell脚本运行查询.我从mysql命令行运行简单的查询.我已经厌倦了一直重新输入它们,为它们编写shell脚本会有点过分.
像这样:
set @department := 'Engineering';
然后,@department
在script.sql中的任何位置引用:
update employee set salary = salary + 10000 where department = @department;
#!/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 my_db my_table # #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
您可以从以下项目中重复使用整个概念