shell的MySQL命令


1. mysql --help

-h  : ip/host

-u  : 用戶名

-p  : 密碼

-P  : 端口

-D  : 指定庫

-e  : 指定sql語句

-t  : 查詢結果按表格展示

-c, --comments :     Preserve comments. Send comments to the server. The default is --skip-comments (discard comments), enable with --comments.

                (注釋也顯示出來, 沒有此項,存儲過程創建時會丟失原有注釋)

-N  : --skip-column-names Don't write column names in results.

 

2. mysql執行完查詢,結果是一行。如何截取某一列的值?

result=`mysql -h -P -u -p -D -N -e"{query}"`

echo $result
echo $result | awk '{print $1}'

##獲取第一列的值,默認是tab分隔符
var1=`echo $result | awk '{print $1}'`

 

3.  sql文件可以在連接mysql命令后,通過source + 文件名命令執行成功

此時要注意delimiter的問題,默認的delimiter為; (mysql --help)

若一個存儲里含有多個; 會被截斷成幾段分開執行,而不是一個完整的存儲

  • 可以在開頭修改分隔符為 //,執行完畢后修改回去
delimiter //

-- 這里是你的存儲開始
CREATE PROCEDURE `rp_patient_indicator_result`()
BEGIN

insert into rp_dag_sdu_log(run_time,task_number,status,result_code,result_msg,create_time) values (DATE_FORMAT(sysdate(),'%Y-%m-%d-%H'),vv_task_number,0,code,msg,SYSDATE());

-- -----------------
//
delimiter ;

 參考: https://blog.csdn.net/yuxin6866/article/details/52722913

 3. source的等價方式

  • mysql -h$Mysql_server -u$Mysql_user -p$Mysql_pswd -P$Mysql_port連接后,source + sql文件
  • mysql -h$Mysql_server -u$Mysql_user -p$Mysql_pswd -P$Mysql_port -D$executeDB -c <"${sql文件路徑}"
  • mysql -h$Mysql_server -u$Mysql_user -p$Mysql_pswd -P$Mysql_port -D$executeDB -e"${sql語句存在變量里}"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM