Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:come eliminare più tabelle utilizzando una singola query?

Ho usato una query molto simile a quella di Angelin. Nel caso in cui tu abbia più di qualche tabella, devi aumentare la lunghezza massima di group_concat . In caso contrario, la query indicherà la stringa troncata che group_concat ritorna.

Questi sono i miei 10 centesimi:

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