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 27/12/2016 16:56:34

doms
Membre

Changer un domain

Bonjour

J'ai une base de donnée pour laquelle les tables ont été définies en utilisant des domain. Plusieurs tables utilisent le domain suivant:

-- dom_text
create domain dom_text as varchar(40);

Comment je fais pour changer ce domain et l'étendre à 80 charactères, donc changer le dom_text en varchar(80)?

J'ai essayé différent ALTER DOMAIN dom_text, mais rien n'y fait.

Ou est-ce qu'il serait possible de changer tous les champs de type dom_text en un nouveau domaine?

Merci pour l'aide.

Hors ligne

#2 27/12/2016 17:23:25

Marc Cousin
Membre

Re : Changer un domain

Oui, on ne peut pas changer le «type», dans les domaines. Uniquement la contrainte check…

Pour faire ce que vous voulez faire avec un domain, le mieux aurait été de le déclarer de type text, avec une contrainte check sur la longueur.

Pour ce qui est de changer tous les champs d'un coup, il va falloir le faire table par table… ce ne devrait pas être très dur à générer à partir des tables système.

Hors ligne

#3 27/12/2016 17:47:44

doms
Membre

Re : Changer un domain

Ok, merci. J'ai trouvé l'info dans la table système information_schema.columns... quelques 1600 champs à changer...

Hors ligne

#4 27/12/2016 17:52:20

Marc Cousin
Membre

Re : Changer un domain

Ça peut valoir le coup d'essayer de faire tous les alter d'une même table en une seule fois, histoire de n'avoir qu'une seule réécriture de la table si le moteur décide d'en faire une.

Hors ligne

Pied de page des forums