是否有任何選項將參數從命令行傳遞到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答案。
基本上,假設我們要運行這個查詢:
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;
我們可以通過 '起始日期' 和 '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}
值得注意的是,它是擴展這個變量的shell,所以這個答案意味着一個* nix shell。 – sastorsl 2016-01-05 10:12:30
的 「-e」 選項是明智的所使用的報價,請嘗試雙引號:
mysql –uuser_id -ppassword –h mysql-host -A -e
"set @start_date=\"$start_date\"; source \"$sql_script\";" >\"$data_file\";"
簡短的回答:
慶典:
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/zh-cn/library/ms162773的.aspx)。 – 2012-04-23 16:28:39