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

PostgreSQL Discussion :

Supprimer des tables dont le nom commence par XXX


Sujet :

PostgreSQL

  1. #1
    Membre régulier Avatar de Escandil
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2003
    Messages : 84
    Points : 70
    Points
    70
    Par défaut Supprimer des tables dont le nom commence par XXX
    J'avais déjà posé cette question en septembre de l'année dernière, mais suites à des changement de directives, j'ai été contrains d'abandonner mon projet.
    Toutefois, ce projet est à nouveau au goût du jour, et je souhaite à nouveau supprimer un nombre important de tables.
    Vous trouverez l'ancien post ici



    J'ai essayé les deux fonctions suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    CREATE OR REPLACE FUNCTION "public"."droppertables" (text) RETURNS integer AS
    $body$
     
    DECLARE
     enregs record;
     compteur integer = 0 ;
    BEGIN
     FOR enregs IN SELECT tablename FROM pg_tables WHERE tablename like '%'||$1 LOOP
      EXECUTE ''DROP TABLE '' || quote_ident(enregs.tablename)
      compteur:=compteur+1;
     END LOOP;
     return compteur;
    END;
    $body$
    LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
     
     
    SELECT droppertables('MonPrefixe');
    Mais j'obtiens un résultat nul, ce qui signifie qu'aucune table n'a été selectionnée.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    CREATE OR REPLACE FUNCTION "public"."droppertables" (text) RETURNS integer AS
    $body$
     
    DECLARE
     enregs record;
     compteur integer = 0 ;
    BEGIN
     FOR enregs IN SELECT tablename FROM pg_tables WHERE tablename ~ $1 LOOP
      EXECUTE ''DROP TABLE '' || quote_ident(enregs.tablename)
      compteur:=compteur+1;
     END LOOP;
     return compteur;
    END;
    $body$
    LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
     
     
    SELECT droppertables('^MonPrefixe');
    Mais j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERROR:  syntax error at or near "DROP"
    CONTEXT:  PL/pgSQL function "droppertables" line 9 at execute statement
    J'avoue ne pas comprendre ou peut se situer cette erreur.



    Je profite de ce fil pour ajouter une seconde question :
    Les tables que je supprime sont des tables à composante spatiale, il me faut donc aussi supprimer la ligne associée dans la table "geometry_columns". J'ai essayé de modifier la fonction pour supprimer cette ligne mais j'avoue avoir échoué.

    En vous remerciant par avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Pourquoi pas essayer en C avec la librairie libpq.

Discussions similaires

  1. Supprimer des jobs dont le nom de la DB se termine par xx
    Par janlouk dans le forum Développement
    Réponses: 2
    Dernier message: 19/02/2015, 13h38
  2. modifier des tables dont les noms sont dans une autre
    Par lapin_did dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/09/2010, 09h45
  3. [Prototype] Chercher radio dont le nom commence par monradio
    Par kabkab dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 29/12/2009, 13h44
  4. Recherche de fichiers dont le nom commence par..
    Par ValyGator dans le forum C++
    Réponses: 4
    Dernier message: 22/05/2006, 00h08
  5. Supprimer des tables dont le nom commence par XXX
    Par Escandil dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 06/09/2005, 17h53

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