Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
Ç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
Guillaume.
Hors ligne
Oui bien sur, mais c'est déjà mieux que rien, et maintenant à moi de choisir des noms de table judicieusement.
Hors ligne
Pages : 1