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

TABLE DE DÉPANNAGE MySQL

Parfois, vous devrez peut-être supprimer une table de la base de données dans MySQL. Vous pouvez facilement le faire en utilisant la commande MySQL DROP TABLE. Voici comment supprimer une table dans MySQL.

Comment supprimer une table dans MySQL

Voici les étapes pour supprimer une table dans MySQL. Nous utiliserons l'instruction MySQL DROP TABLE pour supprimer les tables existantes dans une base de données.

Voici la syntaxe de l'instruction DROP TABLE :

DROP [TEMPORARY] TABLE [IF EXISTS] nom_table [, nom_table] ...[RESTRICT | CASCADE]

L'instruction DROP TABLE peut être utilisée pour supprimer une ou plusieurs tables de base de données.

Le mot clé TEMPORARY supprimera uniquement les tables temporaires et empêchera la suppression des tables non temporaires.

Le mot-clé IF EXISTS supprimera une table uniquement si elle existe.

Veuillez noter que pour pouvoir supprimer une table MySQL, vous devez disposer des privilèges DROP TABLE.

Bonus Read :Comment obtenir un enregistrement à partir d'aujourd'hui dans MySQL

MySQL DROP TABLE pour supprimer une seule table

Disons que vous avez le tableau suivant.

mysql> créer des commandes de table (order_date date, sale int);

Voici l'instruction MySQL DROP TABLE pour supprimer cette table.

mysql> commandes DROP TABLE ;

Si vous essayez de supprimer une table inexistante, vous recevrez un avertissement :

mysql> supprimer les commandes de table ;ERREUR 1051 (42S02) :table inconnue 'sample.orders'

Lecture bonus :comment obtenir le premier enregistrement de chaque groupe dans MySQL

MySQL supprime plusieurs tables

Si vous avez plusieurs tables table1, table2, table3 dans la même base de données, voici l'instruction MySQL DROP TABLE pour les supprimer

mysql> SUPPRIMER TABLE table1, table2, table3 ;

Lecture bonus :comment créer une vue MySQL

Modèle de correspondance MySQL DROP TABLE

Si vous avez plusieurs tables de base de données et que vous souhaitez supprimer des tables correspondant à un modèle particulier tel que "ordre", vous ne pouvez pas utiliser directement l'instruction MySQL DROP TABLE pour cela. Par exemple, la commande suivante NE FONCTIONNERA PAS.

mysql> DROP TABLE like 'order%' ;

Nous devrons donc utiliser un contournement. Disons que vous avez des tables commandes1, commandes2, commande3 dans votre base de données.

mysql> créer des commandes de table1(order_date date, sale int);mysql> créer des commandes de table2(order_date date, sale int);mysql> créer des commandes de table3(order_date date, sale int);

Nous créons d'abord une chaîne de requête SQL dynamique avec des noms de table

SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';')INTO @droplikeFROM information_schema.tablesWHERE @schema =database()AND table_name LIKE @pattern; 

La requête ci-dessus demande à MySQL de récupérer les noms de table correspondant à votre modèle requis @pattern(par exemple order%) à partir de la table information_schema, qui contient une liste de tous les noms de table dans votre base de données @schema (par exemple sample), et de les concaténer avec 'DROP TABLE' . Nous utilisons GROUP_CONCAT pour créer une liste de noms de table séparés par des virgules.

Nous stockons cette requête dans la variable @droplike.

Ensuite, nous définissons les valeurs des variables @pattern et @schema et exécutons des instructions préparées créées à partir de la variable @droplike.

mysql> SET @schema ='sample';mysql> SET @pattern ='order%';mysql> SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';') INTO @droplike FROM information_schema.tables WHERE @schema =database() AND table_name LIKE @pattern;mysql> select @droplike;+-------------------- -----------------------------------------+| @droplike |+------------------------------------------------------------ ---------------+| DROP TABLE sample.orders1, sample.orders2, sample.orders3 ; |+------------------------------------------------------------ -------------+PREPARE stmt FROM @droplike;EXECUTE stmt;DEALLOCATE PREPARE stmt;

MySQL SUPPRIMER toutes les tables

De même, vous pouvez supprimer toutes les tables de votre base de données. Supprimez simplement AND table_name LIKE @pattern à partir de l'instruction select dans @droplike ci-dessus

SET @schema ='sample';SELECT CONCAT('DROP TABLE IF EXISTS',GROUP_CONCAT(CONCAT(@schema,'.',table_name)),';') INTO @droplike FROM information_schema.tables WHERE @schema =base de données();

Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !