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

DB2 Discussion :

Renommer une colonne en UDB 8.1 [FAQ]


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut Renommer une colonne en UDB 8.1
    Tout est dans le titre. Je souhaite renommer une colonne d'une table monstrueuse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE T1 ALTER COLUMN coln rename to colm
    => syntaxe non autorisée en 8.1


    J'ai renommé ma table initiale via la commande rename

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename table T1 to T2 ;
    Maintenant que faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    create table T1 (col1, col2, coln)
    insert into T2 (col1, col2, coln) select col1, col2, colm from T2
    => fonctionne, mais fait pêter les journaux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table T1 as (select col1, col2, coln as colm from T2) with no data
    => crée la table, mais vide !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table T1 LIKE T2
    => crée la table, mais vide, et sans renommer le colonne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    create view V1 as select col1, col2, coln as colm from T2 
    create table T1 LIKE V1
    => crée la table, mais vide !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table T1 as (select col1, col2, coln as colm from T2) with data
    => syntaxe non autorisée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table T1 as (select col1, col2, coln as colm from T2)
    => syntaxe non autorisée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table T1 like (select col1, col2, coln as colm from T2)
    => syntaxe non autorisée

    Une idée ?
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Par défaut
    Et pourquoi pas une vue ?

    Sinon en DB2 for z/OS et jusqu'à la V9 on aurait pu faire :
    UNLOAD / DROP / CREATE / LOAD ( LOG NO pour le pas surcharger la LOG ) et IC ...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 123
    Par défaut
    Bonjour,

    Pour ne pas faire exploser les logs, tu as l'option INITIALLY NOT LOGGED lors de la création ou via un alter de la table.

    Alex.

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    Citation Envoyé par Luc Orient Voir le message
    Et pourquoi pas une vue ?

    Sinon en DB2 for z/OS et jusqu'à la V9 on aurait pu faire :
    UNLOAD / DROP / CREATE / LOAD ( LOG NO pour le pas surcharger la LOG ) et IC ...
    Pas une vue, parce que c'est la table que je dois modifier

    Sinon, comme spécifié précédemment, je suis en DB2-UDB 8.1, pas sur zOS
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    C'est ok, merci : il faut donc obligatoirement repasser par une recréation de table pour renommer une colonne ou sa valeur par défaut

    Par conter, on peut éviter l'impact sur les logs via

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create table T1(col1 int, col2 int)  LOGGED INITIALLY ;
    insert into T1 select col1, col2 from T2 ;
    COMMIT ;
    aussi utilisable pour une table existante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    alter table T1 ACTIVATE NOT LOGGED INITIALLY ;
    update T1 ... ;
    COMMIT ;
    ... et ça mériterait une entrée dans la
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

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

Discussions similaires

  1. Renommer une colonne
    Par rapha51 dans le forum DB2
    Réponses: 1
    Dernier message: 01/02/2008, 18h35
  2. Renommer une colonne d'un DataGridView?
    Par vbnet76 dans le forum VB.NET
    Réponses: 1
    Dernier message: 17/11/2007, 19h16
  3. dba studio oracle 8.i renommer une colonne
    Par rockabilly dans le forum Oracle
    Réponses: 6
    Dernier message: 27/11/2006, 12h23
  4. Renommer une colonne avec ALTER TABLE...
    Par David.V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2004, 10h33

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