我想创建一个部署脚本,以某种方式模拟Oracle部署脚本,使用¶m可以使用以前声明的参数.我需要自动为不同数据库上的不同用户调用此脚本.
例如我的脚本应该是:
USE ¶m;
DROP TABLE IF EXISTS `TEST` ;
CREATE TABLE IF NOT EXISTS `TEST` (X INT(16))
etc....
Run Code Online (Sandbox Code Playgroud)
当然¶m是我在Oracle环境中使用的.
谢谢
更新:
忘了提到我现在正在使用Windows环境.我已经创建了一个批处理脚本来调用mysql脚本.我认为最简单的方法是传递给mysql 2命令:1)使用我拥有的模式作为参数,然后调用将创建表的脚本,而不管模式如何.不幸的是,mysql似乎明白我想连接到架构X,但不想调用脚本.
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%;"
Run Code Online (Sandbox Code Playgroud)
据我所知,你不能直接将变量传递给MySQL脚本.您可以做的最好的事情是在包装器shell脚本中设置用户变量.就像是:
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"
Run Code Online (Sandbox Code Playgroud)
当然,调整实际使用.
| 归档时间: |
|
| 查看次数: |
4780 次 |
| 最近记录: |