Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Comment puis je savoir le nombre de champs dans une table en pg/sql ?
merci
Hors ligne
select count(*) from pg_attribute, pg_class where attnum>0 and attrelid=pg_class.oid and relname='t1';
en remplaçant t1 par le nom de la table.
Guillaume.
Hors ligne
à mon avis, le plus simple, c'est en passant par la vue information_schema.columns
Marc.
Hors ligne
Zut cette fois c'est moi qui ais perdu
Marc.
Hors ligne
Guillaume.
Hors ligne
ok merci pour cette requete mais aussi avec le nom du schema si possible....
merci
Hors ligne
Et bien tu regardes dans la table pg_class, tu devrais y trouver une colonne en relation avec le namespace. Et tu regardes aussi la table pg_namespace pour y faire une jolie jointure...
Guillaume.
Hors ligne
Comme quoi ma requête elle était mieux, moi y a déjà le namespace
Plus sérieusement, l'autre avantage de l'information_schema, c'est que c'est plus ou moins normalisé entre pas mal de bases
Marc.
Hors ligne
Et bien tu regardes dans la table pg_class, tu devrais y trouver une colonne en relation avec le namespace. Et tu regardes aussi la table pg_namespace pour y faire une jolie jointure...
pour gleu
( ya un type oid et un type name ???))
select count(*) from pg_attribute, pg_class ,pg_namespace where attnum>0 and attrelid=pg_class.oid and relname='matable'
and relnamespace=nspname and nspname ='monshema'
Hors ligne
La requête est fausse, à mon avis. Je pensais plutôt à ceci :
SELECT count(*)
FROM pg_attribute, pg_class, pg_namespace
WHERE attnum>0 AND attrelid=pg_class.oid AND relname='matable'
AND relnamespace=pg_namespace.oid and nspname ='monshema'
Guillaume.
Hors ligne
c'est Ok merci en fait j'ai 2 schemas
schema Prod c'est le shema de production
schema rcte c'est le schema de recette
quand j'ai des nouvelles données ou nouveau champ je les integre dans le schema de recette
ensuite je fais des tests sur le schema de recette et apres je compare les differences par rapport au schema de production
(par exemple au bout de quelques semaines )
j'ai pris comme critere le nombre d'enregistrement dans chaque table et le nombre de champ dans chaque table pour comparer les 2 schemas
existe t'il au niveau postgres une fonction qui compare 2 schemas?
ou d'autres criteres que je pourrez prendre en compte
Avis aux experts
merci
Hors ligne
existe t'il au niveau postgres une fonction qui compare 2 schemas?
Non. Par contre, il existe des outils pour comparer la structure de deux bases. Par exemple check_postgres.
Guillaume.
Hors ligne
ok c'est bien dommage ce sera la nouvelle fonction a inventer !! je te remercie
Michel
Hors ligne
Comme je suis en train de préparer la newsletter de dalibo, je viens de re-découvrir un petit outil qui pourra vous aider : http://apgdiff.sourceforge.net/
Cet outil permet de comparer les objets contenus dans deux dumps. Donc, théoriquement car je n'ai pas testé, rien ne vous empêche de créer un dump séparé de vos deux schémas et de lancer l'outil sur ces deux dumps. C'est à tester
Guillaume.
Hors ligne
Pages : 1