MySQL скрипт с параметрами - PullRequest
4 голосов
/ 28 марта 2012

Я хочу создать сценарий развертывания, каким-то образом эмулировать сценарии развертывания Oracle, где с помощью & param вы можете использовать ранее объявленные параметры. Мне нужно автоматически вызывать этот скрипт для разных пользователей в разных базах данных.

Например, мой скрипт должен быть:

USE &param;
DROP TABLE IF EXISTS `TEST` ;
CREATE TABLE IF NOT EXISTS `TEST` (X   INT(16))
etc....

Конечно, & param - это то, что я использовал бы в среде 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%;"

1 Ответ

5 голосов
/ 28 марта 2012

Насколько я знаю, вы не можете напрямую передавать переменные в скрипт MySQL. Лучшее, что вы можете сделать, это установить пользовательские переменные в скрипте оболочки. Что-то вроде:

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"

Конечно, с учетом фактического использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...