Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-fr-generale by date

Next:From: Laurent BirckelDate: 2005-04-08 08:16:54
Subject: Re: Modifier un type
Previous:From: Stéphane DupuyDate: 2005-04-08 08:04:34
Subject: Re: Modifier un type

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group