Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL :comment supprimer plusieurs tables à l'aide d'une seule requête ?

J'ai utilisé une requête très similaire à celle d'Angelin. Si vous avez plus de quelques tables, il faut augmenter la longueur maximale de group_concat . Sinon, la requête barf sur la chaîne tronquée que group_concat Retour.

Voici mes 10 centimes :

-- Increase memory to avoid truncating string, adjust according to your needs
SET group_concat_max_len = 1024 * 1024 * 10;
-- Generate drop command and assign to variable
SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(table_schema,'.',table_name)),';') INTO @dropcmd FROM information_schema.tables WHERE table_schema='databasename' AND table_name LIKE 'my_table%';
-- Drop tables
PREPARE str FROM @dropcmd; EXECUTE str; DEALLOCATE PREPARE str;