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 21/04/2018 16:40:53

trainvapeur
Membre

savoir si une table / colonne existe

Bonjour à tous,

je dois mettre à jour une base de données sous Postgre à partir d'une base de données sous ... Visual Foxpro (non, il n'est pas mort !!) dans laquelle on peut ajouter une table, ajouter une colonne dans une table, etc. Sous PostGre, comment savoir si une table existe, si une colonne existe ?

D'avance merci
Jean

Hors ligne

#2 21/04/2018 22:35:49

rjuju
Administrateur

Re : savoir si une table / colonne existe

Bonjour,

Vous pouvez requêter le catalogue.  La requête suivante vous donne pour chaque table son schéma ainsi que ses colonnes:

SELECT nspname, relname, attname
FROM pg_class c
JOIN pg_namespace n on n.oid = c.relnamespace
JOIN pg_attribute a ON a.attrelid = c.oid
WHERE attnum > 0
ORDER BY nspname, relname, attnum;

Vous pouvez l'adapter pour chercher ce dont vous avez besoin.

Hors ligne

#3 22/04/2018 12:04:00

trainvapeur
Membre

Re : savoir si une table / colonne existe

Merci !

Du coup, j'ai découvert plein de choses en interrogeant pg_catalog ...

Bonne fin de dimanche
Jean

Hors ligne

#4 22/04/2018 14:13:09

ioguix
Administrateur

Re : savoir si une table / colonne existe

Salut,

Il est aussi possible d'utiliser l'excellent pgTap pour effectuer ces tests là. Voir: http://pgtap.org/documentation.html

D'autant plus que si vous migrez une application, je suis certain que quelques tests de non régression écrits avec pgTap ne seront pas de trop wink

++

Hors ligne

#5 24/04/2018 17:30:27

trainvapeur
Membre

Re : savoir si une table / colonne existe

Bonjour ioguix,
je ne migre pas l'application mais juste les données. VFP étant un excellent outil, je conserve tout l'applicatif. Par contre je copie les données des .dbf vers une base PostGre car VFP est un excellent client SQL.
J'ai quelques soucis car VFP autorise beaucoup de choses que PostGre n'accepte pas.

Il ne devrait donc pas avoir de régression, juste une petite baisse de la vitesse d'execution (qui reste imperceptible !).

Bonne fin de journée
Jean

Hors ligne

#6 24/04/2018 20:59:40

ioguix
Administrateur

Re : savoir si une table / colonne existe

Alors bon courage et bonne continuation pour votre migration de donnée trainvapeur ! smile

Hors ligne

Pied de page des forums