IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

changement de type pour un champ dans une table


Sujet :

PostgreSQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 39
    Points : 28
    Points
    28
    Par défaut changement de type pour un champ dans une table
    J'aurai souhaité savoir s'il était possible de changer le type d'un champ c'est à dire par exemple passer de integer à text, sans être obliger de supprimer la table et de la refaire, je suis allée sur le site sql pro, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    ALTER TABLE T_IMPORT 
    ADD TMP_IMP_DATE CHAR(6) 
     
    UPDATE T_IMPORT 
    SET TMP_IMP_DATE = IMP_DATE 
     
    ALTER TABLE 
    DROP IMP_DATE 
     
    ALTER TABLE 
    ADD IMP_DATE DATE 
     
    UPDATE T_IMPORT  
    SET IMP_DATE = CAST(CASE SUBSTRING(TMP_IMP_DATE, 5, 2) 
                           WHEN < '03' THEN  '20' 
                           ELSE '19' 
                        END || SUBSTRING(TMP_IMP_DATE, 5, 2)  
                        || '-' || SUBSTRING(TMP_IMP_DATE, 3, 2) 
                        || '-' || SUBSTRING(TMP_IMP_DATE, 1, 2) AS DATE) 
     
    ALTER TABLE 
    DROP TMP_IMP_DATE 
     
    COMMIT
    Ne marche pas chez moi , voilà ce que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    GDBASE=# ALTER TABLE "TABLE"
    GDBASE-# ADD "TMP-NUM-ORDRE" bigint
    GDBASE-# ALTER TABLE
    GDBASE-# DROP "NUM-ORDRE"
    GDBASE-# ALTER TABLE
    GDBASE-# ADD "NUM-ORDRE" INTEGER
    GDBASE-# ALTER TABLE
    GDBASE-# DROP "TMP-NUM-ORDRE";
    ERROR:  parser: parse error at or near "ALTER"
    fAUT IL METTRE UN ; A CHAQUE FOIS??? J'AI DU MAL

  2. #2
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    Oui, il faut un ";" après chaque instruction sql, que cela soit un select, insert ou alter table.

    Pour ma part, pour résoudre ton problème, j'aurais créer un 2ème champ avec le bon format et utiliser une instruction "update" pour copier le 1er champ dans le 2ème avec le bon format (transtypage), puis supprimer le 1er.

    @+

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 39
    Points : 28
    Points
    28
    Par défaut
    OK MERCI

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/03/2008, 18h06
  2. cherche requette pour trouver le nom des champs dans une table
    Par maverick56 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 12/07/2007, 10h28
  3. Réponses: 1
    Dernier message: 03/08/2006, 13h08
  4. [A97] VBA : Commande sql pour insertion de champs dans une table
    Par JeremieT dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/07/2006, 13h12
  5. Nom de Champ dans une table pour utiliser For/Next
    Par Mulele dans le forum Access
    Réponses: 6
    Dernier message: 30/10/2004, 13h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo