PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 10/08/2011 13:31:09

ph_morville
Membre

Coherence des colonnes

Bonjour

Existe t-il outil permettant de controler la coherence des tables et des fonctions pour traiter le problème suivant:
Utitilisation de pdAdmin
1- Creation d'un table   col_a, col_b, col_c
2- Creation d'une fonction (procedure stockée) utilisant la colonne col_b 
3- Modification  de la fonction, utilisation de col_z, lors de la validation pgAdmin retourne une erreur col_z n'existe pas: (résultat normal )
4- Modification de la table suppression de col_b dans ce cas nous ne sommes pas prévenu que cette colonne est utilisée ailleur.
    sauf à passer en revue toutes les fonctions, en y ajoutant un espace par exemple et en validant,  la modification sortira en erreur.
    Je n'ai pas trouvé d'outil pour controler la cohérence des colonnes entre les tables et les fonctions.

Merci d'avance
Cordialement
Philippe

Hors ligne

#2 10/08/2011 16:49:44

gleu
Administrateur

Re : Coherence des colonnes

Tout simplement parce que cet outil n'existe pas. Comme il est possible d'exécuter des requêtes dynamiques, ce type d'outils aurait de toute façon une utilité très restreinte.


Guillaume.

Hors ligne

#3 10/08/2011 17:41:54

ph_morville
Membre

Re : Coherence des colonnes

Merci pour la réponse, mais j'ai trouvé une methode pour au moins connaitre toutes les fonctions qui accedent à une table.
Toutes les fonctions sont stockées dans la table "routines" du catalogue, il suffit ensuite de faire un select pour extraire toute celles qui utilisent une table précise.

Exemple avec la table "lot"  et comme chaque colonne de chaque table à un préfixe unique alors je peux aussi les récupèrer

select routine_name, routine_definition  from information_schema.routines
   where specific_schema = 'public'   and
     routine_definition like '%lot%';

Hors ligne

#4 10/08/2011 18:07:55

gleu
Administrateur

Re : Coherence des colonnes

Ça ne récupère pas toutes les procèdures stockées qui ont la table lot. Ça récupère toutes les procèdures contenant le mot "lot". J'espère que vous n'avez pas de table qui s'appelle beg ou gin smile


Guillaume.

Hors ligne

#5 10/08/2011 18:23:56

ph_morville
Membre

Re : Coherence des colonnes

Oui bien sur, mais c'est déjà mieux que rien, et maintenant à moi de choisir des noms de table judicieusement.

Hors ligne

Pied de page des forums