Re: Modifier un type

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.

In response to

Browse pgsql-fr-generale by date

  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