想要实现MySQL>drop table like "prefix_%"

没有直接可用的命令,不过可以通过mysql语法来组装,

1. SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';'
2. AS statement FROM
3. WHERE table_schema = 'database_name' AND table_name LIKE 'myprefix_%';

然后执行该组装后的命令,比如从slowquery表中删除掉所有tmp_开头的表:

1. SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) AS statement FROM information_schema.tables WHERE table_schema = 'slowquery' AND table_name LIKE 'tmp_%';

输出结果:

1. drop table

执行之即可。

by iefreer

MySQL中批量删除指定前缀表的sql语句

有时候我们在安装一些cms的时候,这些cms都是带表前缀的方便区分数据,但有时候我们测试完需要删除的时候又有别的前缀表就可以参考下面的方法

复制代码

Select CONCAT( 'drop table ', table_name, ';' ) 
   
 FROM information_schema.tables 
   
 Where table_name LIKE 'dede_%';

"dede"为要删除的表前缀,执行此SQL语句后会生成一串SQL语句,必须再执行生成的这些SQL语句才能真正执行删除操作

mysql 删除 foreign key表数据 mysql删除表内容语句_sql

另外一个就是批量修改表名:

复制代码

Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO ', table_name,';' ) 
    FROM information_schema.tables 
    Where table_name LIKE 'dede_%';

  首先执行此SQL语句,会生成如下语句:

复制代码

ALTER TABLE de_aaa RENAME TO de_aaa; 
    ALTER TABLE de_bbb RENAME TO de_bbb;

  在编辑器中将“RENAME TO de”批量改为想设置的表前缀,再执行此SQL语句即可批量修改表名。