1. mysql --help
-h : ip/host
-u : 用户名
-p : 密码
-P : 端口
-D : 指定库
-e : 指定sql语句
-t : 查询结果按表格展示
-c, --comments: Preserve comments. Send comments to the server. Thedefault is --skip-comments (discard comments), enablewith --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 ;
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
mysql -h$Mysql_server -u$Mysql_user -p$Mysql_pswd -P$Mysql_port -D$executeDB -e"${sql语句存在变量里}"