Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/10/2007, 18h17   #1
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

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

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
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 :
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 :
RENAME TABLE T1 TO T2 ;
Maintenant que faire ?

Code :
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 :
CREATE TABLE T1 AS (SELECT col1, col2, coln AS colm FROM T2) WITH no DATA
=> crée la table, mais vide !

Code :
CREATE TABLE T1 LIKE T2
=> crée la table, mais vide, et sans renommer le colonne !

Code :
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 :
CREATE TABLE T1 AS (SELECT col1, col2, coln AS colm FROM T2) WITH DATA
=> syntaxe non autorisée

Code :
CREATE TABLE T1 AS (SELECT col1, col2, coln AS colm FROM T2)
=> syntaxe non autorisée

Code :
CREATE TABLE T1 LIKE (SELECT col1, col2, coln AS colm FROM T2)
=> syntaxe non autorisée

Une idée ?
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 23h08   #2
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 098
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 098
Points : 1 707
Points : 1 707
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 ...
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 08h06   #3
Membre habitué
 
Inscription : septembre 2004
Messages : 123
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 123
Points : 127
Points : 127
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.
alex. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 09h08   #4
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

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

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
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 / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 13h55   #5
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

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

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
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 :
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 :
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 / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h42.


 
 
 
 
Partenaires

Hébergement Web