我知道,與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
整個概念