近期工作中有需求需要根据MySql查询返回结果循环发起Spark任务,为方便以后遇到同类需求能快速实现,所以抽空写了个公共脚本,简单实现在Shell中执行MySql查询及获取查询返回值,其他数据库的查询原理类似,如有需要根据下面代码简单修改即可。
-
执行insert、update、delete的方法
# 执行sql 无需获取返回值,sql执行失败则脚本异常结束 # 参数1 完整的sql语句 function mysqlExecute { mysql -u"${HOST}" -P"${PORT}" -u"${USER}" -p"${PASSWD}" -D"${DATABASE}" -e "$1" if [[ $? -eq 0 ]] then echo "exec sql succeed: " echo "$1" else echo "exec sql failed: " echo "$1" exit -1 fi }
-
执行select的方法
# 执行sql 需获取返回值,sql执行失败则脚本异常结束 # 参数1 完整的select语句 function mysqlExecuteQuery { # 返回结果:-e带表头 -Ne不带表头 rs=(`mysql -u"${HOST}" -P"${PORT}" -u"${USER}" -p"${PASSWD}" -D"${DATABASE}" -Ne "$1"`) if [[ $? -eq 0 ]] then # 打印查询结果中的每一个元素 echo ${rs[*]} else