微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

执行mysql查询后捕获退出代码

我正在研究一个查询mysql的bash脚本.我想添加一些错误检查.假设由于某种原因导致以下查询失败,我想捕获退出错误退出脚本.例如,这是我脚本的一部分.

QUERY="SELECT disTINCT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `@R_719_4045@ion_schema`.`TABLES`
WHERE  table_schema NOT IN ( 'MysqL', '@R_719_4045@ion_schema', 'performance_schema' )"    

MysqL -u user -pPASSWD --batch -N -e "$QUERY" | while read DATABASE TABLE;
do
  ...
  ...
  ...
done

在脚本运行“$QUERY”后,我怎么能捕获退出代码.我在想这样的事情.但它似乎没有用.

MysqL -u user -pPASSWD --batch -N -e "$QUERY" echo $? | while read DATABASE TABLE;

有任何想法吗

解决方法:

你是好方法:$?是要检查的标志:

$MysqL -h mydb <<< "SELECT * FROM MyDB.some_table_that_exists;"
$echo $?
0

$MysqL -h mydb <<< "SELECT * FROM MyDB.asdfasdfasdf;"
ERROR 1146 (42S02) at line 1: Table 'MyDB.asdfasdfasdf;' doesn't exist
$echo $?
1

所以你可以做的是执行查询,然后:

if [ $? ... ]; then ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐