2016-08-02 115 views
0

在PostgreSQL中,您可以在使用psql運行查詢時從命令行傳入命名參數。例如,如果你運行如下命令:MySQL:如何從命令行傳遞參數?

psql -v v1=12 -f query.sql 

裏面query.sql的,你可以參考V1像這樣:

select * from table_1 where id = :v1; 

用MySQL支持類似的東西嗎?

+0

您是否嘗試先閱讀文檔?:http://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html – Nicarus

+0

是的,我沒有看到任何與此相關的內容。如果MySQL不支持它,我希望有人能證實,因爲我是新手。 – pca2

+2

我也沒有看到任何東西,但檢查以下任何一種幫助:http://stackoverflow.com/questions/20145367/pass-mysql-variables-to-script-from-command-line或http:/ /stackoverflow.com/questions/10229324/pass-parameter-to-mysql-script-command-line – Nicarus

回答

0

存儲過程示例。

DROP PROCEDURE IF EXISTS so_gibberish.blahBlah7; 
DELIMITER $$ 
CREATE DEFINER=`root`@`localhost` PROCEDURE so_gibberish.blahBlah7 
(
) 
BEGIN 
    select CONCAT('The variable is ',@myVar) AS 'theAnswer'; 
END$$ 
DELIMITER ; 

測試:

OS Prompt> mysql -uroot -p so_gibberish -e "set @myVar='Hank Aaron'; call blahBlah7();" 
Enter password: ******** 
+----------------------------+ 
| theAnswer     | 
+----------------------------+ 
| The variable is Hank Aaron | 
+----------------------------+ 

so_gibberish是數據庫名稱。 -e表示運行此查詢。

@myVar成爲基於連接的用戶變量。