我必须通过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
谢谢
答案 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被称为黑洞