[英]mysql cmdline client to return error to shell script
有没有一种方法可以使mysql
cmdline客户端在遇到错误后立即中止,并将非零退出状态返回给控制Shell脚本。
基本上,我希望能够有一个像这样的shell脚本:
mysql -A --batch <<END_SQL
UPDATE table1...
UPDATE table2...
...
END_SQL
if [ $? -ne 0 ]
then
# Error handling
fi
使用oracle时,我只需要将WHENEVER SQLERROR EXIT FAILURE
放在sql命令的顶部。 是否有mysql等效项? 在Google中找不到任何内容。
默认情况下,mysql客户端在遇到错误时确实会退出。
如果使用--force
选项,可以使mysql客户端遇到错误时不退出。
$ echo "select * from nonexistanttable ; select now()" | mysql test
ERROR 1146 (42S02) at line 1: Table 'test.nonexistanttable' doesn't exist
$ echo $?
1
注意,这不会返回now()
的结果。 它先退出。
$ echo "select * from nonexistanttable ; select now()" | mysql --force test
ERROR 1146 (42S02) at line 1: Table 'test.nonexistanttable' doesn't exist
now()
2017-11-12 22:46:30
$ echo $?
0
啊,有。
这个问题与MySQL相反:在导入时忽略错误?
众所周知这是mysql客户端的行为。 唯一的线索就是阅读本手册页中的--force
选项: https : //dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.