我知道使用 mysql,您可以将 SQL 语句写入 .sql 文件并从 mysql 命令行运行该文件,如下所示:
mysql> source script.sql
如何将变量传递给脚本?例如,如果我想运行一个脚本来检索部门中的所有员工,我希望能够将部门编号作为变量传递。
我不想通过 shell 脚本运行查询。我从 mysql 命令行运行了一些简单的查询。我已经厌倦了一直重新输入它们,为它们编写一个 shell 脚本将是矫枉过正。
最佳答案
#!/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
您可以重复使用 from the following project 中的整个概念
关于mysql - 如何将变量传递给 mysql 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76065/