Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Wie lösche ich mehrere Tabellen mit einer einzigen Abfrage?

Ich habe eine Abfrage verwendet, die der von Angelin sehr ähnlich ist. Falls Sie mehr als ein paar Tabellen haben, muss man die maximale Länge von group_concat erhöhen . Andernfalls wird die Abfrage die abgeschnittene Zeichenfolge group_concat barfen kehrt zurück.

Das sind meine 10 Cent:

-- 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;