1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2008
    Messages : 144
    Points : 110
    Points
    110

    Par défaut Ajout d'une colonne et d'une valeur par défaut

    Bonjour à tous,

    Lorsque j'ajoute une colonne qui possède une valeur par défaut non-nulle, PostgreSQL est censé faire la réécriture de la table avec cette nouvelle valeur par défaut.
    C'est ce que je lis sur la doc Section "Notes" 2e et 3e paragraphes.

    Or, je n'obtiens pas du tout ce résultat. Je pense que PostgreSQL ne réécris pas la table pour les records avant modification; Pour les ajouts de lignes, j'ai le comportement attendu.

    voici mes modifications :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table mytable add col2 int, alter col2 set default 1;
    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
    postgres=# \d mytable 
        Table "public.mytable"
     Column |  Type   | Modifiers 
    --------+---------+-----------
     id     | bigint  | 
     txt    | text    | 
     col1   | integer | 
     col2   | integer | default 1
     
    postgres=# select * From mytable limit 5;
     id |               txt                | col1 | col2 
    ----+----------------------------------+------+------
      1 | 909f30bb4525d8faa871dbcd781673bc |      |       
      2 | 89322ec9c4a8bb367bed857bbbbe551d |      |       
      3 | 62d89569adb6cb72bb62853332568bc5 |      |       
      4 | 21a67701603a7251ef4763cd9e5963bc |      |       
      5 | e4d45997890b4b02c7b2caf670e92d59 |      |       
    (5 rows)
    Quelqu'un est il capable de m'expliquer?

    Merci !

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    avril 2002
    Messages
    5 581
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : avril 2002
    Messages : 5 581
    Points : 21 808
    Points
    21 808

    Par défaut

    Bonjour,

    Une syntaxe plus juste serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table mytable add col2 int default 1;
    Là, ça fonctionne.

    Dans le cas de votre syntaxe, PostgreSQL ne prend pas en compte l'ALTER sur une colonne qu'il est en train de créer...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2008
    Messages : 144
    Points : 110
    Points
    110

    Par défaut

    Bonjour ced,

    En effet ça fonctionne.

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Ajout de donnée en fonction d'une colonne et d'une ligne
    Par metiss_mimi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/03/2017, 12h05
  2. Réponses: 4
    Dernier message: 12/03/2015, 11h46
  3. Réponses: 3
    Dernier message: 29/03/2011, 20h38
  4. access : calcul d'une somme de 0 sans valeur par défaut
    Par ericbelgium dans le forum Access
    Réponses: 6
    Dernier message: 06/10/2005, 09h05
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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