From: | Stéphane Bunel <stephane(at)stratum-ip(dot)net> |
---|---|
To: | Apollonie Raffalli <apo(dot)raffalli(at)wanadoo(dot)fr> |
Cc: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: Modifier un type |
Date: | 2005-04-08 08:12:00 |
Message-ID: | 42563CD0.2030604@stratum-ip.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Apollonie Raffalli wrote:
> Le vendredi 8 Avril 2005 09:52, vous avez écrit :
>
>>Bonjour à tous !
>>J'utilise PostgreSQL 7.3.2 et j'ai un petit problème de type...
>>Dans une table, j'ai une colonne POIDS qui a été declarée en SMALLINT.
>>Or, je viens de tomber sur un cas où mon poids est supérieur à 40 tonnes =>
>>40000 kg => supérieur à la valeur maximale d'un SMALLINT !
>>Donc, je voudrais modifier le type de ma colonne POIDS en INTEGER pour
>>contourner ce problème...
>>Comment faire sans perdre mes données ?
>>Y-a-t-il une astuce sur la commande ALTER TABLE pour modifier un type de
>>données ?
>>Merci pour votre aide...
>
>
> La modification d'un type de colonne n'est faisable qu'à partir de la version
> 8 de PostgreSQL.
> Peut-être convertir l'unité avec un update ;-)
>
Proposition de brute :
1/ Couper l'accèes à la base
2/ Exporter les données de la table (via COPY par ex.)
3/ DROPer la table
4/ CREATE TABLE avec un INTEGER comme désiré
5/ Importer les données (via COPY aussi)
6/ Vérifier, vérifier, vérifier
7/ Redonner les accès à la base
Stéphane.
PS: La même chose peut se faire avec la création d'une table temporaire
et imbriqué la manipulation dans une transaction.
From | Date | Subject | |
---|---|---|---|
Next Message | Laurent Birckel | 2005-04-08 08:16:54 | Re: Modifier un type |
Previous Message | Stéphane Dupuy | 2005-04-08 08:04:34 | Re: Modifier un type |