首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带参数的MySQL脚本

问带参数的MySQL脚本
EN

Stack Overflow用户
提问于 2012-03-28 21:23:58
回答 1查看 5.3K关注 0票数 4

我想创建一个部署脚本,以某种方式模拟Oracle部署脚本,在这里您可以使用之前声明的参数。我需要为不同数据库上的不同用户自动调用此脚本。

例如,我的脚本应该是:

代码语言:javascript
复制
USE &param;
DROP TABLE IF EXISTS `TEST` ;
CREATE TABLE IF NOT EXISTS `TEST` (X   INT(16))
etc....

当然,我在Oracle环境中也会用到?m。

谢谢

更新:

忘了提一下,我现在使用的是windows环境。我已经创建了一个批处理脚本来调用mysql脚本。我认为最简单的方法是传递给MySQL2命令: 1)使用我拥有的模式作为参数,然后调用脚本,无论模式是什么,脚本都会创建表。不幸的是,mysql似乎理解我想要连接到模式X,但又不想调用脚本。

代码语言:javascript
复制
REM param is the schema and mainsql is the script
SET param="%1"
SET mainsql="script.sql"

echo %param%
echo %mainsql%

mysql -u <user> --password=<psw>  %param% "source %mainsql%;"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-28 21:32:03

据我所知,您不能直接将变量传递给MySQL脚本。您能做的最好的事情就是在包装器shell脚本中设置用户变量。类似于:

代码语言:javascript
复制
passed_var1=$1
passed_var2=$2
mainsql=script.sql

mysql $(usual_parameters) -e "set @user_var1=$passed_var1; set @user_var2=$passed_var2; source $mainsql"

当然,根据实际使用情况进行调整。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9908462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档