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

Existe-t-il une commande MySQL pour implémenter quelque chose comme drop tables except t1,b2 ?

Vous pouvez utiliser information_schema pour trouver des noms de table, et même formater les résultats comme un tas de DROP déclarations.

SELECT CONCAT('DROP TABLE ', TABLE_NAME, '; ')
  FROM information_schema.tables
  WHERE table_schema = DATABASE() AND table_name NOT IN ('foo', 'bar', 'baz');

(La DATABASE() la fonction renvoie le use actuellement 'd base de données.)

Utilisation de PREPARE et EXECUTE , vous pouvez même éviter le copier-coller et (dans MySQL 5.0.13 et versions ultérieures) écrire une procédure stockée pour le faire.