Подтвердить что ты не робот

Передайте параметр в командную строку MySQL script

Есть ли опция передать параметр из командной строки в MySQL script?

Что-то вроде @start_date в этом примере:

mysql –uuser_id -ppassword –h mysql-host -A -e 
"set @start_date=${start_date}; source ${sql_script};" >${data_file};
4b9b3361

Ответ 1

Найден ответ в сети здесь.

В принципе, предположим, что мы хотим запустить этот запрос:

Select c_id, c_first_name,c_last_name, c_address,last_modified_date
from customer
where last_modified_date >[email protected]_date and last_modified_date <= @end_date;

Мы можем передать 'start_date' и 'end_date' следующим образом:

/usr/bin/mysql –uuser_id -ppassword –h mysql-host -A \
    -e "set @start_date=${start_date}; set @end_date=${end_date};\
        source ${sql_script};" > ${data_file}

Ответ 2

Короткий ответ:

bash:

        mysql -u"$mysql_user" -p"$mysql_user_pw" \
        -e "set @mysql_db='$mysql_db';source \
        00.create-mysql-starter-db.mysql ;" > "$tmp_log_file" 2>&1

MySQL:

     SET @query = CONCAT('CREATE DATABASE /*!32312 IF NOT EXISTS*/ `'
     , @mysql_db , '` /*!40100 DEFAULT CHARACTER SET utf8 */') ; 
     -- SELECT 'RUNNING THE FOLLOWING query : ' , @query ; 
      PREPARE stmt FROM @query;
      EXECUTE stmt;
      DEALLOCATE PREPARE stmt;

Длинный ответ: Вся концепция как runnable bash, mysql app:

https://github.com/YordanGeorgiev/mysql-starter

или

    git clone [email protected]:YordanGeorgiev/mysql-starter.git

Ответ 3

Опция "-e" разумна для использованных котировок, попробуйте двойную кавычку:

mysql –uuser_id -ppassword –h mysql-host -A -e 
"set @start_date=\"$start_date\"; source \"$sql_script\";" >\"$data_file\";"