Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 09/12/2009 11:03:22
- mich30
- Membre
Savoir le nombre de champs dans une table
Bonjour,
Comment puis je savoir le nombre de champs dans une table en pg/sql ?
merci
Hors ligne
#2 09/12/2009 11:07:15
- gleu
- Administrateur
Re : Savoir le nombre de champs dans une table
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
#3 09/12/2009 11:10:18
- Marc Cousin
- Membre
Re : Savoir le nombre de champs dans une table
à mon avis, le plus simple, c'est en passant par la vue information_schema.columns
Marc.
Hors ligne
#4 09/12/2009 11:11:58
- Marc Cousin
- Membre
Re : Savoir le nombre de champs dans une table
Zut cette fois c'est moi qui ais perdu
Marc.
Hors ligne
#5 09/12/2009 11:21:35
- gleu
- Administrateur
Re : Savoir le nombre de champs dans une table
Guillaume.
Hors ligne
#6 09/12/2009 11:43:12
- mich30
- Membre
Re : Savoir le nombre de champs dans une table
ok merci pour cette requete mais aussi avec le nom du schema si possible....
merci
Hors ligne
#7 09/12/2009 11:51:39
- gleu
- Administrateur
Re : Savoir le nombre de champs dans une table
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
#8 09/12/2009 11:54:50
- Marc Cousin
- Membre
Re : Savoir le nombre de champs dans une table
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
#9 09/12/2009 14:34:37
- mich30
- Membre
Re : Savoir le nombre de champs dans une table
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
#10 09/12/2009 14:36:45
- gleu
- Administrateur
Re : Savoir le nombre de champs dans une table
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
#11 09/12/2009 15:21:56
- mich30
- Membre
Re : Savoir le nombre de champs dans une table
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
#12 09/12/2009 16:19:17
- gleu
- Administrateur
Re : Savoir le nombre de champs dans une table
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
#13 09/12/2009 16:34:58
- mich30
- Membre
Re : Savoir le nombre de champs dans une table
ok c'est bien dommage ce sera la nouvelle fonction a inventer !! je te remercie
Michel
Hors ligne
#14 10/12/2009 11:16:09
- gleu
- Administrateur
Re : Savoir le nombre de champs dans une table
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