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

#1 17/11/2009 12:15:46

Jiff
Membre

Bouts de code - Infos Contraintes

Salut,

je suis à la recherche de bouts de codes pour récupérer toutes les infos et contraintes des colonnes d'une base afin de les réutiliser dans l'application qui va au-dessus et éviter une éventuelle désynchronisation en manuel:

* Type du champs (int4, varchar(n), ...), également si le descripteur est un domain (c'est surtout là que ça coince),
* Contraintes "directes" (not null, >5, ...),
* Contraintes "indirectes" (celles du domain).

je n'ai pas trop le temps de m'y atteler étant donné que le dev de l'application prend tout mon temps dispo.

Merci d'avance.

Hors ligne

#2 21/11/2009 20:58:12

gleu
Administrateur

Re : Bouts de code - Infos Contraintes

Type du champs (int4, varchar(n), ...), également si le descripteur est un domain (c'est surtout là que ça coince)

select attname, t.typname from pg_attribute, pg_type as t, pg_class as c where relname='a' and attrelid=c.oid and attnum>0 and t.oid=atttypid;

... récupère type et domaine.

Contraintes "directes" (not null, >5, ...),

not null ==> colonne attnotnull de pg_attribute
check ==> colonnes conkey (liste des colonnes contraintes), consrc (code source de la contrainte) dans la table pg_constraint

Contraintes "indirectes" (celles du domain)

table pg_type, colonnes typdefault, typnotnull (pour les contraintes) et typbasetype (pour le type de base)


Guillaume.

Hors ligne

#3 21/11/2009 21:39:24

Jiff
Membre

Re : Bouts de code - Infos Contraintes

Merci,
je pense que comme mes définitions de tables sont dans un tableur, je vais utiliser ses fonctions
histoire de remplacer les domains par leurs valeurs réelles afin de faciliter la récupération des
types de champs.

Hors ligne

Pied de page des forums