IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Supprimer toutes les tables d'une base


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 160
    Points
    160
    Par défaut Supprimer toutes les tables d'une base
    Bonjour,

    j'ai une base de données mySQL dont je voudrias supprimer toutes les tables
    Je n'arrive pas à trouver la syntaxe exacte. De plus c'est une base hébergée chez OVH et je ne peux supprimer ma bdd :
    J'ai essayé la syntaxe suivante mais elle n'a pas l'air de marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DROP ALL TABLES FROM DATABASE_NAME
    Pierre24.
    http://www.goguel-blog.com
    Les racistes sont des gens qui se trompent de colère.
    Léopold Sédar Senghor

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 961
    Points
    52 961
    Billets dans le blog
    6
    Par défaut
    Il n'est pas possible de supprimer toutes les tables en une seule instruction. La suppression des objets SQL se fait un par un.

    Pour faire ce que vous voulez faire, vous pouvez :
    • soit supprimer la base et la recréer
    • soit utiliser du SQL dynamique pour ce faire.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT 'DROP TABLE ' + COALESCE(TABLE_SCHEMA + '.', '') + TABLE_NAME +'; '
    FROM   INFORMATION_SCHEMA.TABLES
    Il ne vous reste plus qu'a exécuter le résultat de cette requête dans un script SQL.

    Si vos tables sont imbriquées par des contraintes d'intégrité référentielles, il faut préalablement les supprimer (ALTER TABLE ... DROP CONSTRAINT)

    Pour ce faire vous pouvez utiliser la vue d'information de schéma INFORMATION_SCHEMA.TABLE_CONSTRAINTS en cherchant les contraintes de type "FOREIGN KEY".

    Pour plus d'information sur la structuration des tables et plus particulièrement le DDL de SQL, lisez ce que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlaz/ddl/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il n'est pas possible de supprimer toutes les tables en une seule instruction. La suppression des objets SQL se fait un par un.

    Pour faire ce que vous voulez faire, vous pouvez :
    • soit supprimer la base et la recréer
    • soit utiliser du SQL dynamique pour ce faire.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT 'DROP TABLE ' + COALESCE(TABLE_SCHEMA + '.', '') + TABLE_NAME +'; '
    FROM   INFORMATION_SCHEMA.TABLES
    Il ne vous reste plus qu'a exécuter le résultat de cette requête dans un script SQL.

    Si vos tables sont imbriquées par des contraintes d'intégrité référentielles, il faut préalablement les supprimer (ALTER TABLE ... DROP CONSTRAINT)

    Pour ce faire vous pouvez utiliser la vue d'information de schéma INFORMATION_SCHEMA.TABLE_CONSTRAINTS en cherchant les contraintes de type "FOREIGN KEY".

    Pour plus d'information sur la structuration des tables et plus particulièrement le DDL de SQL, lisez ce que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlaz/ddl/

    A +

    Bonjour,

    Je voudrai également supprimer toutes les tables d'une base de données.. mais le soucis c'est que je n'ai jamais utilisé de SQL dynamique, je ne sais comment faire.. vous pourriez me fournir une documentation? parce que je n'ai rien compris dans la ligne de code que vous avez écrite.

  4. #4
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 780
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 780
    Points : 3 033
    Points
    3 033
    Par défaut
    La solution fournie par SQLPro n'a rien de dynamique.

    Fais un bête copy/paste de son code dans ton Management Studio, tu t'assures que l'output se fait en mode texte (CTRL-T) et tu exécutes l'instruction.

    Ensuite, tu fais un copy/paste du résultat (soit plusieurs lignes DROP TABLE ...) dans une nouvelle fenêtre SQL. C'est tout.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il n'est pas possible de supprimer toutes les tables en une seule instruction. La suppression des objets SQL se fait un par un.

    Pour faire ce que vous voulez faire, vous pouvez :
    • soit supprimer la base et la recréer
    • soit utiliser du SQL dynamique pour ce faire.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT 'DROP TABLE ' + COALESCE(TABLE_SCHEMA + '.', '') + TABLE_NAME +'; '
    FROM   INFORMATION_SCHEMA.TABLES
    Il ne vous reste plus qu'a exécuter le résultat de cette requête dans un script SQL.

    Si vos tables sont imbriquées par des contraintes d'intégrité référentielles, il faut préalablement les supprimer (ALTER TABLE ... DROP CONSTRAINT)

    Pour ce faire vous pouvez utiliser la vue d'information de schéma INFORMATION_SCHEMA.TABLE_CONSTRAINTS en cherchant les contraintes de type "FOREIGN KEY".

    Pour plus d'information sur la structuration des tables et plus particulièrement le DDL de SQL, lisez ce que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlaz/ddl/

    A +

    Ca marche merci bcp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer toutes les données d'une base
    Par yopyopyop dans le forum Oracle
    Réponses: 13
    Dernier message: 21/06/2006, 13h35
  2. [MySQL] lister toutes les tables d'une base
    Par Tr@nkill dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/04/2006, 14h45
  3. Liste de toutes les tables d'une base inconnue
    Par TTiger dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/11/2005, 07h59
  4. Supprimer TOUTES les tables d"une bd
    Par perlgirl dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 14/12/2004, 12h12
  5. Sélection de toute les tables d'une base
    Par lord_paco dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/07/2003, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo