Tronquer toutes les tables d'une base de données MySQL en une seule commande?
346
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.
Tronquer toutes les tables? voulez-vous dire tronquer toutes les colonnes de toutes les tables d'une base de données? Dans quel langage de requête s'agit-il? (par exemple SQL, MySQL, Oracle, Postgres, etc.)
Jay
Je ne suis pas sûr que je recommanderais de faire cela car vous pourriez très facilement vous mettre dans le pétrin. Y a-t-il une raison pour laquelle vous ne pouvez pas simplement scripter les tronques et exécuter le script?
GrayWizardx
merci 4 la réponse mais la seule raison pour laquelle le script n'est pas à court de temps, alors pensez à exécuter une requête dans mysql
devang
ya son dans mysql..and requête signifie quelque chose de similaire à truncate table nom_table..ici je veux tronquer toutes les lignes de toutes les tables de ma base de données en une seule requête
devang
Vous pouvez utiliser Information_Schema avec un curseur. Pas sûr de MySql, mais il devrait prendre en charge Information_Schema.Tables
GrayWizardx
Réponses:
340
Supprimer (c'est-à-dire supprimer des tables)
mysql -Nse 'show tables' DATABASE_NAME |whilereadtable; do mysql -e "drop table $table" DATABASE_NAME; done
Tronquer (c'est-à-dire des tables vides)
mysql -Nse 'show tables' DATABASE_NAME |whilereadtable; do mysql -e "truncate table $table" DATABASE_NAME; done
Ouaip, propre, ty. Mais vous devrez peut-être l'exécuter avec -uUSER -pPASSWORD. Vous devrez peut-être également l'exécuter plusieurs fois si vous avez FK sans suppression sur la cascade.
mihaicc
47
Si vous rencontrez des problèmes FK tels que " Impossible de supprimer ou de mettre à jour une ligne parent: une contrainte de clé étrangère échoue ", assurez-vous de désactiver les vérifications de clé étrangère en modifiant la commande comme suit:mysql -e "SET FOREIGN_KEY_CHECKS = 0; drop table $table" DATABASE_NAME
Ethan P.
24
Pas besoin de boucler le client mysql. Sortez-le de la boucle comme ceci:mysql -Nse 'show tables' DATABASE_NAME | while read table; do echo "drop table $table;"; done | mysql DATABASE_NAME
Sur la base de la réponse et des commentaires ci-dessus, et parce qu'ils ne fonctionnaient pas comme prévu pour moi, j'ai créé un script bash simple que vous pouvez utiliser pour cela. Vous pouvez le trouver sur: gist.github.com/mocanuga/eff26a3dcc40ef657a1c812f68511f6d
mocanuga
145
tronquer 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
Remarque: vous obtiendrez peut-être cette erreur:
ERROR 1217(23000): Cannot deleteorupdate a parent row: a foreignkeyconstraint 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.
C'est probablement la meilleure solution si vous avez un utilisateur et un mot de passe pour votre base de données et que vous ne voulez pas les taper visiblement dans votre shell.
Bach
5
Surévalué car cette solution nécessite uniquement un accès DB et non un accès SSH. De plus, il est indépendant du système d'exploitation.
mastazi
@mastazi j'ai quelques questions: 1. que signifie "table_schema"? se tient-il du nom du schéma? 2.Que signifie TABLE_NAME? représente-t-il les tableaux à supprimer? 3. dois-je écrire les tables à supprimer dans la commande comme "('db1_name', 'db2_name')"?
AAEM
@Ahmed les seules substitutions requises sont que vous devez remplacer db1_name et db2_name par les noms de vos bases de données. Ensuite, vous devez copier les résultats de cette requête, les coller en tant que nouvelle requête mysql et les exécuter. INFORMATION_SCHEMA est un schéma intégré qui est pré-installé dans chaque installation MySQL et contient des informations sur vos bases de données, ne le touchez pas ou votre MySQL commencera à mal se comporter :-) table_schema et table_name sont des colonnes de la table appelée "TABLES" dans information_schema
mastazi
par "db_name", vous voulez dire le nom du schéma? je n'ai qu'un schéma que je veux supprimer ses données de tables
AAEM
67
Utilisez phpMyAdmin de cette manière:
Affichage de la base de données => Tout vérifier (tables) => Vide
Si vous souhaitez ignorer les vérifications de clé étrangère, vous pouvez décocher la case qui dit:
[] Activer les vérifications de clé étrangère
Vous devrez exécuter au moins la version 4.5.0 ou supérieure pour obtenir cette case à cocher.
salut..merci pour la réponse d j'ai essayé cette requête mais ne semble pas fonctionner .. c'est quelque chose comme la table tronquée nom_table que je peux utiliser pour toutes les tables de ma base de données ..
devang
J'ai oublié que MySQL ne supporte pas directement l'opérateur "+". En supposant que c'est l'erreur, j'ai ajouté l'exemple CONCAT () ci-dessus. Si vous recevez toujours un message d'erreur, veuillez partager le message d'erreur réel.
plage
cette requête fonctionne mais que se passe-t-il si j'ai un nom de base de données différent, par exemple devang..est mon nom de base de données, donc si je l'utilise en fonction de votre requête ci-dessus, génère l'erreur foll .. La table 'devang.TABLES' n'existe pas
devang
3
Ahh. INFORMATION_SCHEMA est une vue qui existe dans la base de données active. Si vous modifiez votre base de données, la vue sera alors exécutée sur cette base de données. Il n'est pas nécessaire de modifier la requête lors du changement de bases de données. Suivez simplement ces étapes: 1) changez la base de données active. 2) exécutez le script. 3) copiez les résultats 4) collez les résultats dans l'éditeur 5) exécutez les résultats. Toutes les tables de la base de données active sont désormais tronquées.
plage
1
IL FAUT SE MÉFIER! Cela sélectionne toutes les tables de toutes les bases de données (même celles qui ne sont PAS dans la base de données actuelle. L'exemple MySQL ne fonctionne pas, mais dans mon cas, il a renvoyé 293 lignes (tables) au lieu de 66. Imaginez la perte de données ...
f4der
19
J'ai trouvé cela pour supprimer toutes les tables d'une base de données:
Si vous voulez travailler avec la base de données actuelle (et donc rendre ce code portable), changez la dernière condition en SELECTceci:AND table_schema = DATABASE();
alx
Ça ne tronque pas pour moi. MySQL 5.7.25
Lucas Bustamante
14
J'ai trouvé le plus simple de faire quelque chose comme le code ci-dessous, il suffit de remplacer les noms de table par les vôtres. important de vous assurer que la dernière ligne est toujours SET FOREIGN_KEY_CHECKS = 1;
SET FOREIGN_KEY_CHECKS=0;TRUNCATE`table1`;TRUNCATE`table2`;TRUNCATE`table3`;TRUNCATE`table4`;TRUNCATE`table5`;TRUNCATE`table6`;TRUNCATE`table7`;SET FOREIGN_KEY_CHECKS=1;
Pour tronquer une table, il faut supprimer les contraintes de clé étrangère mappées aux colonnes de cette table à partir d'autres tables (en fait sur toutes les tables du DB / schéma spécifique).
Ainsi, toutes les contraintes de clé étrangère doivent être supprimées initialement, suivies d'une troncature de table.
Facultativement, utilisez la table d'optimisation (dans mysql, innodb engine esp) pour récupérer l'espace / la taille des données utilisées sur le système d'exploitation après la troncature des données.
Une fois la troncature des données effectuée, créez à nouveau les mêmes contraintes de clé étrangère sur la même table. Voir ci-dessous un script qui générerait le script pour effectuer les opérations ci-dessus.
si vous utilisez SQL Server 2005, il existe une procédure stockée masquée qui vous permet d'exécuter une commande ou un ensemble de commandes sur toutes les tables d'une base de données. Voici comment vous appelleriez TRUNCATE TABLEavec cette procédure stockée:
Pour MySql, cependant, vous pouvez utiliser mysqldump et spécifier les options --add-drop-tableset --no-datapour supprimer et créer toutes les tables en ignorant les données. comme ça:
les noms de la base de données devraient être dans qoutes
Roman M
2
Non. Il n'y a pas de commande unique pour tronquer toutes les tables mysql à la fois. Vous devrez créer un petit script pour tronquer les tableaux un par un.
Voici ma variante pour avoir «une instruction pour les tronquer tous».
Tout d'abord, j'utilise une base de données distincte nommée «util» pour mes procédures stockées d'assistance. Le code de ma procédure stockée pour tronquer toutes les tables est:
SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME,';')FROM INFORMATION_SCHEMA.TABLES where table_schema in('databasename1','databasename2');
Si ne peut pas supprimer ou mettre à jour une ligne parent: une contrainte de clé étrangère échoue
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 les tableaux Il vous suffit de:
SET FOREIGN_KEY_CHECKS=0;
Tronquez vos tables et modifiez-la
SET FOREIGN_KEY_CHECKS=1;
utiliser ce code php
$truncate= mysql_query("SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';') as tables_query FROM INFORMATION_SCHEMA.TABLES where table_schema in ('databasename')");while($truncateRow=mysql_fetch_assoc($truncate)){
mysql_query($truncateRow['tables_query']);}?>
Voici une procédure qui devrait tronquer toutes les tables de la base de données locale.
Faites-moi savoir si cela ne fonctionne pas et je supprimerai cette réponse.
Non testé
CREATEPROCEDURE truncate_all_tables()BEGIN-- Declare local variablesDECLARE done BOOLEAN DEFAULT0;DECLARE cmd VARCHAR(2000);-- Declare the cursorDECLARE cmds CURSORFORSELECT CONCAT('TRUNCATE TABLE ', TABLE_NAME)FROM INFORMATION_SCHEMA.TABLES;-- Declare continue handlerDECLARECONTINUE HANDLER FOR SQLSTATE '02000'SET done=1;-- Open the cursorOPEN cmds;-- Loop through all rows
REPEAT
-- Get order numberFETCH cmds INTO cmd;-- Execute the command
PREPARE stmt FROM cmd;EXECUTE stmt;DROP PREPARE stmt;-- End of loop
UNTIL done END REPEAT;-- Close the cursorCLOSE cmds;END;
Il m'a fallu beaucoup de temps pour comprendre pourquoi cela ne fonctionnait pas .. Ensuite, un commentaire sur ce fil de discussion électronique a aidé: forums.mysql.com/read.php?61,116597,219343#msg-219343 - Pour référence : "Malheureusement, il semble que les instructions prepare ne puissent pas être utilisées dans les curseurs. Extrait du manuel: dev.mysql.com/doc/refman/6.0/en/… "
Tominator
1
Je trouve que TRUNCATE TABLE .. a des problèmes avec les contraintes de clé étrangère, même après une NOCHECK CONSTRAINT ALL, donc j'utilise à la place une instruction DELETE FROM. Cela signifie que les graines d'identité ne sont pas réinitialisées, vous pouvez toujours ajouter un CHECKIDENT DBCC pour y parvenir.
I Utilisez le code ci-dessous pour imprimer dans la fenêtre de message le sql pour tronquer toutes les tables de la base de données, avant de l'exécuter. Cela rend juste un peu plus difficile de faire une erreur.
Je ne suis pas sûr mais je pense qu'il existe une commande à l'aide de laquelle vous pouvez copier le schéma de la base de données dans une nouvelle base de données, une fois que vous avez fait cela, vous pouvez supprimer l'ancienne base de données et après cela, vous pouvez à nouveau copier le schéma de la base de données sous l'ancien nom.
mysqldump -uuser -ppassword --no-data salesLeadsBrittany> salesLeadsTemplate.sql Cela créera un fichier sql avec le schéma uniquement (pas de données). Vous pouvez supprimer la base de données après cette commande et pouvez recréer la base de données en important le schéma.
GJ.
0
Je sais que ce n'est pas exactement une commande, mais le résultat souhaité peut être obtenu à partir de phpMyAdmin en suivant ces étapes:
Sélectionnez (toutes) les tables à supprimer (Tout cocher)
Sélectionnez "Drop" / "Truncate" dans la liste "With selected:"
Sur la page de confirmation ("Voulez-vous vraiment:") copier la requête (tout avec le fond rouge)
Allez en haut et cliquez sur SQL et écrivez: "SET FOREIGN_KEY_CHECKS = 0;" puis collez la requête précédemment copiée
Cliquez sur "Aller"
L'idée est d'obtenir rapidement toutes les tables de la base de données (ce que vous faites en 5 secondes et 2 clics) mais désactivez d'abord les vérifications de clés étrangères. Aucune CLI et aucune suppression de la base de données et ajout à nouveau.
TB=$( mysql -Bse "show tables from DATABASE");for i in${TB};
do echo "Truncating table ${i}";
mysql -e "set foreign_key_checks=0; set unique_checks=0;truncate table DATABASE.${i}; set foreign_key_checks=1; set unique_checks=1";
sleep 1;
done
-
David,
Merci d'avoir pris le temps de formater le code, mais c'est ainsi qu'il est censé être appliqué.
-Kurt
Sur un boîtier UNIX ou Linux:
Assurez-vous que vous êtes dans un shell bash. Ces commandes doivent être exécutées à partir de la ligne de commande comme suit.
Remarque:
Je stocke mes informations d'identification dans mon fichier ~ / .my.cnf, donc je n'ai pas besoin de les fournir sur la ligne de commande.
Remarque:
cpm est le nom de la base de données
Je ne montre qu'un petit échantillon des résultats de chaque commande.
Trouvez vos contraintes de clé étrangère:
klarsen@Chaos:~$ mysql -Bse "select concat(table_name, ' depends on ', referenced_table_name)
from information_schema.referential_constraints
where constraint_schema = 'cpm'
order by referenced_table_name"
approbation_externe_système dépend de approbation_demande
l'adresse dépend du client
L'identification du client dépend du client
external_id dépend du client
les informations d'identification dépendent du client
email_address dépend du client
approbation_demande dépend du client
customer_status dépend du client
image_client dépend du client
Énumérez les tables et le nombre de lignes:
klarsen@Chaos:~$ mysql -Bse "SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'cpm'"| cat -n
1 address 2972 approval_external_system 03 approval_request 04 country 1895 credential 4686 customer 67767 customer_identification 56318 customer_image 29 customer_status 13639
Tronquez vos tableaux:
klarsen@Chaos:~$ TB=$( mysql -Bse "show tables from cpm");for i in${TB}; do echo "Truncating table ${i}"; mysql -e "set foreign_key_checks=0; set unique_checks=0;truncate table cpm.${i}; set foreign_key_checks=1; set unique_checks=1"; sleep 1; done
Adresse de table tronquée
Troncature de la table approbation_external_system
Tronquer la table approbation_demande
Pays de la table tronquée
Troncature des informations d'identification de la table
Client de table tronquée
Table tronquée identification_client
Tableau tronqué image_client
Table tronquée customer_status
Vérifiez que cela a fonctionné:
klarsen@Chaos:~$ mysql -Bse "SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'cpm'"| cat -n
1 address 02 approval_external_system 03 approval_request 04 country 05 credential 06 customer 07 customer_identification 08 customer_image 09 customer_status 010 email_address 0
Sur une boîte Windows:
REMARQUE:
cpm est le nom de la base de données
C:\>for/F "tokens=*"%a IN('mysql -Bse "show tables" cpm') do mysql -e "set foreign_key_checks=0; set unique_checks=0; truncate table %a; foreign_key_checks=1; set unique_checks=1" cpm
La requête MySQL suivante produira elle-même une seule requête qui tronquera toutes les tables d'une base de données donnée. Il contourne les clés étrangères:
Cela perd toutes les contraintes, autorisations, vues, etc. sur les tables - ce qui est une nuisance considérable.
Jonathan Leffler
Vous pouvez faire une suppression, puis réamorcer toutes les tables au lieu de tronquer. Je suppose que la baisse est due à la frustration. Restaurez simplement votre sauvegarde.
hey james, je pense que l'OP cherche d'une part un liner .... et d'autre part une commande pour retirer toutes les tables une fois et les supprimer. cela nécessite une sorte d'intervention de l'utilisateur. merci pour le message
Réponses:
Supprimer (c'est-à-dire supprimer des tables)
Tronquer (c'est-à-dire des tables vides)
la source
mysql -e "SET FOREIGN_KEY_CHECKS = 0; drop table $table" DATABASE_NAME
mysql -Nse 'show tables' DATABASE_NAME | while read table; do echo "drop table $table;"; done | mysql DATABASE_NAME
tronquer plusieurs tables de base de données sur l'instance Mysql
Utiliser le résultat de la requête pour tronquer les tables
Remarque: vous obtiendrez peut-être cette erreur:
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 les tableaux Il vous suffit de:
Tronquez vos tables et modifiez-la
la source
Utilisez phpMyAdmin de cette manière:
Si vous souhaitez ignorer les vérifications de clé étrangère, vous pouvez décocher la case qui dit:
Vous devrez exécuter au moins la version 4.5.0 ou supérieure pour obtenir cette case à cocher.
Ce n'est pas MySQL CLI-fu, mais bon, ça marche!
la source
MS SQL Server 2005+ (Supprimer PRINT pour une exécution réelle ...)
Si votre plateforme de base de données prend en charge les vues INFORMATION_SCHEMA, prenez les résultats de la requête suivante et exécutez-les.
Essayez ceci pour MySQL:
L'ajout d'un point-virgule au Concat le rend plus facile à utiliser, par exemple à partir de MySQL Workbench.
la source
J'ai trouvé cela pour supprimer toutes les tables d'une base de données:
Utile si vous êtes limité par la solution d'hébergement (impossible de supprimer une base de données entière).
Je l'ai modifié pour tronquer les tables. Il n'y a pas de "--add-truncate-table" pour mysqldump, donc j'ai fait:
fonctionne pour moi --modifier, corriger une faute de frappe dans la dernière commande
la source
la source
SELECT
ceci:AND table_schema = DATABASE();
J'ai trouvé le plus simple de faire quelque chose comme le code ci-dessous, il suffit de remplacer les noms de table par les vôtres. important de vous assurer que la dernière ligne est toujours SET FOREIGN_KEY_CHECKS = 1;
la source
Cela affichera la commande pour tronquer toutes les tables:
la source
Une fois la troncature des données effectuée, créez à nouveau les mêmes contraintes de clé étrangère sur la même table. Voir ci-dessous un script qui générerait le script pour effectuer les opérations ci-dessus.
Maintenant, exécutez le script Db Truncate.sql généré
Avantages. 1) Récupérer de l'espace disque 2) Pas nécessaire pour supprimer et recréer le DB / Schema avec la même structure
Désavantages. 1) Les contraintes FK doivent être des noms dans la table avec le nom contenant «FK» dans le nom de la contrainte.
la source
si vous utilisez SQL Server 2005, il existe une procédure stockée masquée qui vous permet d'exécuter une commande ou un ensemble de commandes sur toutes les tables d'une base de données. Voici comment vous appelleriez
TRUNCATE TABLE
avec cette procédure stockée:Ici un bon article qui approfondit.
Pour MySql, cependant, vous pouvez utiliser mysqldump et spécifier les options
--add-drop-tables
et--no-data
pour supprimer et créer toutes les tables en ignorant les données. comme ça:guide d'utilisation de mysqldump de dev.mysql
la source
Utilisez-le et formez la requête
Maintenant, utilisez ceci pour utiliser cette requête
si vous obtenez une erreur comme celle-ci
la façon la plus simple de passer est en haut de votre fichier ajoutez cette ligne
ce qui signifie que nous ne voulons pas vérifier les contraintes de clé étrangère en parcourant ce fichier.
Il tronquera toutes les tables des bases de données db1 et bd2.
la source
Non. Il n'y a pas de commande unique pour tronquer toutes les tables mysql à la fois. Vous devrez créer un petit script pour tronquer les tableaux un par un.
réf: http://dev.mysql.com/doc/refman/5.0/en/truncate-table.html
la source
Voici ma variante pour avoir «une instruction pour les tronquer tous».
Tout d'abord, j'utilise une base de données distincte nommée «util» pour mes procédures stockées d'assistance. Le code de ma procédure stockée pour tronquer toutes les tables est:
Une fois que vous avez cette procédure stockée dans votre base de données util, vous pouvez l'appeler comme
qui est maintenant exactement une déclaration :-)
la source
ici car je sais ici
Si ne peut pas supprimer ou mettre à jour une ligne parent: une contrainte de clé étrangère échoue
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 les tableaux Il vous suffit de:
Tronquez vos tables et modifiez-la
utiliser ce code php
vérifier les détails ici lien
la source
Voici une procédure qui devrait tronquer toutes les tables de la base de données locale.
Faites-moi savoir si cela ne fonctionne pas et je supprimerai cette réponse.
Non testé
la source
Je trouve que TRUNCATE TABLE .. a des problèmes avec les contraintes de clé étrangère, même après une NOCHECK CONSTRAINT ALL, donc j'utilise à la place une instruction DELETE FROM. Cela signifie que les graines d'identité ne sont pas réinitialisées, vous pouvez toujours ajouter un CHECKIDENT DBCC pour y parvenir.
I Utilisez le code ci-dessous pour imprimer dans la fenêtre de message le sql pour tronquer toutes les tables de la base de données, avant de l'exécuter. Cela rend juste un peu plus difficile de faire une erreur.
la source
Je ne suis pas sûr mais je pense qu'il existe une commande à l'aide de laquelle vous pouvez copier le schéma de la base de données dans une nouvelle base de données, une fois que vous avez fait cela, vous pouvez supprimer l'ancienne base de données et après cela, vous pouvez à nouveau copier le schéma de la base de données sous l'ancien nom.
la source
Je sais que ce n'est pas exactement une commande, mais le résultat souhaité peut être obtenu à partir de phpMyAdmin en suivant ces étapes:
L'idée est d'obtenir rapidement toutes les tables de la base de données (ce que vous faites en 5 secondes et 2 clics) mais désactivez d'abord les vérifications de clés étrangères. Aucune CLI et aucune suppression de la base de données et ajout à nouveau.
la source
-
David,
Merci d'avoir pris le temps de formater le code, mais c'est ainsi qu'il est censé être appliqué.
-Kurt
Sur un boîtier UNIX ou Linux:
Assurez-vous que vous êtes dans un shell bash. Ces commandes doivent être exécutées à partir de la ligne de commande comme suit.
Remarque:
Je stocke mes informations d'identification dans mon fichier ~ / .my.cnf, donc je n'ai pas besoin de les fournir sur la ligne de commande.
Remarque:
cpm est le nom de la base de données
Je ne montre qu'un petit échantillon des résultats de chaque commande.
Trouvez vos contraintes de clé étrangère:
Énumérez les tables et le nombre de lignes:
Tronquez vos tableaux:
Vérifiez que cela a fonctionné:
Sur une boîte Windows:
REMARQUE:
cpm est le nom de la base de données
la source
La requête MySQL suivante produira elle-même une seule requête qui tronquera toutes les tables d'une base de données donnée. Il contourne les clés étrangères:
la source
la source
Soln 1)
Soln 2)
-- Éditer ----
la source
Cela a fonctionné pour moi. Modifiez la base de données, le nom d'utilisateur et le mot de passe en conséquence.
mysql -Nse 'show tables' -D DATABASE -uUSER -pPWD | while read table; do echo "SET FOREIGN_KEY_CHECKS = 0;drop table \`$table\`;SET FOREIGN_KEY_CHECKS = 1;"; done | mysql DATABASE -uUSER -pPWD
la source
Une idée pourrait être de simplement supprimer et recréer les tableaux?
ÉDITER:
@Jonathan Leffler: Vrai
Autre suggestion (ou cas où vous n'avez pas besoin de tronquer TOUTES les tables):
Pourquoi ne pas simplement créer une procédure stockée de base pour tronquer des tables spécifiques
la source
Voici un extrait de code que j'utilise pour effacer une table. Modifiez simplement $ conn info et TABLE_NAME.
la source