コマンドラインからMySQLスクリプトにパラメータを渡すオプションはありますか?MySQLスクリプトコマンドラインにパラメータを渡す
この例では@start_dateような何か:
mysql –uuser_id -ppassword –h mysql-host -A -e
"set @start_date=${start_date}; source ${sql_script};" >${data_file};
コマンドラインからMySQLスクリプトにパラメータを渡すオプションはありますか?MySQLスクリプトコマンドラインにパラメータを渡す
この例では@start_dateような何か:
mysql –uuser_id -ppassword –h mysql-host -A -e
"set @start_date=${start_date}; source ${sql_script};" >${data_file};
はネットhereに答えを見つけました。
我々はこのような 'START_DATE' と 'END_DATE' を渡すことができ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;
:
/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}
この答えが* nixシェルを意味するように、この変数を展開するのはシェルだということは注目に値します。 – sastorsl
"-e" オプションが賢明である
基本的に、我々はこのクエリを実行するとします
mysql –uuser_id -ppassword –h mysql-host -A -e
"set @start_date=\"$start_date\"; source \"$sql_script\";" >\"$data_file\";"
短い答え:
を使用引用符に、二重引用符にしてみてくださいの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;
長い答え: 全体のコンセプトを実行可能bashのように、MySQLのアプリ:
https://github.com/YordanGeorgiev/mysql-starter
または
git clone [email protected]:YordanGeorgiev/mysql-starter.git
@ Kaii彼は[SQL ServerのSQLCMDが '-v'オプションでサポートする]「スクリプト変数」のようなものを探している可能性が最も高いです(http://msdn.microsoft.com/en-us/library/ms162773 .aspx)。 –