如需转载,请根据 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 许可,附上本文作者及链接。
本文作者: 陈进涛
作者昵称: 江上轻烟
本文链接: https://zhizhi123.com/2016/06/18/mysql-batch-del/
问题描述
工作中我们会遇到批量删除一些mysql数据表的情况,比如现在有100个带’2012_’前缀的表,如何将其批量删除,it’s a problem.
假设
数据库:test
表特征:'2012_'前缀
mysql用户名:root
mysql密码:passwd
解决方案
1 | echo "select concat('drop table ', table_name ,';') from TABLES where TABLE_SCHEMA ='test' and table_name like '%2012\_%' ;" | mysql information_schema -uroot -ppasswd| sed -n '2,$p' | mysql test -uroot -ppasswd |
要点解析
- 上述命令应用了“管道”
- ‘select concat’拼接出了查询语句
- mysql中有一个默认存在的数据库information_schema,其中包含所有mysql的数据表信息
- sed -n ‘2,$p’是取出管道输入的第二行到末尾行
注意事项
- 如果你的环境变量中没有加入mysql的命令,把上述mysql命令替换为完整命令路径
- 数据无价,谨慎删除!😂
-------------本文结束,感谢您的阅读-------------
本文作者:
陈进涛
本文链接: https://zhizhi123.com/2016/06/18/mysql-batch-del/
版权声明: 本作品采用 署名—非商业性使用—相同方式共享 4.0 协议国际版 进行许可。转载请注明出处!
本文链接: https://zhizhi123.com/2016/06/18/mysql-batch-del/
版权声明: 本作品采用 署名—非商业性使用—相同方式共享 4.0 协议国际版 进行许可。转载请注明出处!