在bash中执行mysql命令时,不要回显特定的错误消息

时间:2013-08-05 08:57:50

标签: mysql bash shell

我必须通过bash脚本执行以下mysql命令:

drop table $tablename \; | mysql -uusername -ppassword $dbname

此命令执行了很多次,但问题是在命令运行之前可以删除$tablename。当它已经被删除时,我在命令提示符下得到以下消息:

ERROR 1051 (42S02) at line 1: Unknown table 'tablename'
database table tablename, not found

有没有办法过滤掉这条错误消息,所以我不会被垃圾邮件搞这个?

编辑:在创建表格时是否有像IF EXISTS这样的类似解决方法?为了防止获得以下Table already exists

好的,IF NOT EXISTS谢谢

3 个答案:

答案 0 :(得分:2)

添加if exists

 drop table if exists $tablename

来自文档:

  

使用IF EXISTS防止对不存在的表发生错误。使用IF EXISTS时,会为每个不存在的表生成注释。

答案 1 :(得分:0)

如果查看DROP TABLE语法,您会看到有IF EXISTS子句旨在处理表可能不存在的事实。

因此,使用......

DROP TABLE IF EXISTS $tablename \; | mysql -uusername -ppassword $dbname

...将解决此问题。

答案 2 :(得分:-2)

我还发现可以使用... 2>/dev/null。这会将输出写入/ dev / null,并在命令提示符下输出任何内容......

drop table $tablename \; | mysql -uusername -ppassword $dbname 2>/dev/null

/ dev / null被称为黑洞