数据库
首页 > 数据库> > MySQL批量删除表在哪里表?

MySQL批量删除表在哪里表?

作者:互联网

DROP TABLE (
SELECT table_name
FROM information_schema.`TABLES`
WHERE table_schema = 'myDatabase' AND table_name LIKE BINARY 'del%');

我知道这不行! SQL中这样的东西有什么用呢?我可以用一个简单的Python脚本来做这个,但只是想知道我们是否可以直接用SQL做一些事情.我正在使用MySQL.谢谢!

解决方法:

你可以使用prepared statements

SET @tables = NULL;
SELECT GROUP_CONCAT('`', table_schema, '`.`', table_name,'`') INTO @tables FROM information_schema.tables 
  WHERE table_schema = 'myDatabase' AND table_name LIKE BINARY 'del%';

SET @tables = CONCAT('DROP TABLE ', @tables);
PREPARE stmt1 FROM @tables;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

它将生成并执行这样的语句 –

DROP TABLE myDatabase.del1, myDatabase.del2, myDatabase.del3;

标签:sql-drop,mysql
来源: https://codeday.me/bug/20190930/1834574.html