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