shell调用mysql的存储过程以及SQL

在华为的时候,还短暂接触和写过shell,调用oracle,后来转入java之后,比较少接触shell,一转眼回过头又要摸shell,去处理mysql,留一点笔记,以备后用。

#!/bin/sh
#test.sh
HOSTNAME="192.168.11.246"                                           #数据库信息
PORT="3306"
USERNAME="root"
PASSWORD="password"
DBNAME="dw_wbt"
TABLENAME="wbt_order_output_detail_copy"

echo  "Begin  execute pro_test_copy"


#更新数据
#updatesql="update ${TABLENAME} set qty=123"
updatesql="CALL pro_test_copy()"


mysql -h${HOSTNAME}   -P${PORT}   -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${updatesql}"

echo  "End execute pro_test_copy"
 

这里面的updatesql可以采用任何方式,可以DML,DDL等操作,也包括function和producre,不建议在shell中传入参数,实在不行可以使用编译语言,然后shell调用java的main脚本,不过需要小心配置GC,在简单调用SQL过程中,发现mysql的命令每次需要执行-e的属性操作,不知道代表啥意思,也不是很在意这些,已经解决了,发个帖,下次用到时候,能够直接拿来主义。

猜你喜欢

转载自cywhoyi.iteye.com/blog/1654554