En MySQL, vous pouvez utiliser information_schema.TABLES
(les noms de tables sont sensibles à la casse dans MySQL) pour récupérer la liste des tables. Vous pouvez ensuite construire une requête dynamique et l'exécuter avec EXECUTE STMT
. Voici un exemple:
SET @query = '';
SELECT *
FROM (
SELECT @query := CONCAT(@query,if(@query = '','',' union all '),
'select * from ', T.`TABLE_NAME`)
FROM information_schema.TABLES T
WHERE TABLE_SCHEMA = 'YourDatabaseName'
) sub
WHERE 1=0;
PREPARE STMT FROM @query;
EXECUTE STMT;
P.S. Les instructions multi-lignes comme celle-ci ne fonctionnent pas dans le navigateur de requêtes, mais dans la ligne de commande. Enregistrez les commandes dans un fichier appelé sqlcommands.txt
et vous pouvez les exécuter comme:
mysql -u user -p password dbname < sqlcommands.txt