Existe-t-il une requête (commande) pour tronquer toutes les tables d'une base de données en une seule opération? Je veux savoir si je peux le faire avec une seule requête.
Réponses
Trop de publicités?tronquez plusieurs tables de base de données sur l'instance Mysql
SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';')
FROM INFORMATION_SCHEMA.TABLES where table_schema in (db1_name,db2_name);
Utiliser le résultat de la requête pour tronquer les tables
Note: peut-être que vous aurez cette erreur:
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
Cela se produit s'il existe des tables avec des références de clés étrangères à la table que vous essayez de supprimer / tronquer.
Avant de tronquer des tables Tout ce que vous devez faire est:
SET FOREIGN_KEY_CHECKS=0
Tronquez vos tables et remplacez-les par
SET FOREIGN_KEY_CHECKS=1
MS SQL Server 2005 + (supprimer l’impression pour exécution effective...)
Si votre plateforme de base de données prend en charge les vues INFORMATION_SCHEMA, prendre les résultats de la requête suivante et l’exécuter.
Essayez ceci pour MySQL :
Ajouter un point-virgule à Concat rend plus facile à utiliser par exemple au sein de mysql workbench.
J’ai trouvé ceci pour supprimer toutes les tables dans une base de données :
Utile si vous êtes limité par la solution (pas en mesure de supprimer une base de données entière) d’hébergement.
J’ai modifié pour tronquer les tableaux. Il n’y a aucun «--add-tronquer-table » de mysqldump, alors j’ai fait :
travaille pour moi--edit, fixant une faute de frappe dans la dernière commande