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 07/07/2005, 16h43   #1
Membre du Club
 
Inscription : février 2005
Messages : 283
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 283
Points : 69
Points : 69
Par défaut [debutant][DB2] auto increment field

Hello,

je n'arrive pas à créer une table dans DB2 avec une clé primaire qui s'auto incrémente. J'utilise le code suivant :

Code :
1
2
 
CREATE TABLE StoredQuerys (id int NOT NULL AUTO_INCREMENT, Query varchar(240), PRIMARY KEY (id))
quelqu'un à une idée ?
mlequim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2005, 17h59   #2
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
Sous DB2, il y a deux méthodes

Code :
1
2
CREATE TABLE t (i int GENERATED ALWAYS AS IDENTITY, c char(3)) ;
INSERT INTO t (c) VALUES (‘A’) ;
ou

Code :
1
2
3
CREATE sequence t_seq ;
CREATE TABLE t (i int, c char(3)) ;
INSERT INTO t (i, c) VALUES (next value FOR t_seq, ‘A’);
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2005, 09h46   #3
Membre du Club
 
Inscription : février 2005
Messages : 283
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 283
Points : 69
Points : 69
merci beaucoup ça à marché
mlequim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2006, 17h56   #4
Nouveau Membre du Club
 
Développeur Java
Inscription : septembre 2006
Messages : 37
Détails du profil
Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : septembre 2006
Messages : 37
Points : 29
Points : 29
Cette info me sera utile par la suite (merci également, donc ), mais il m'en faudrait une autre similaire :

Comment ajouter une clé primaire qui s'auto-incrémente à une table qui existe déjà ?

Ceci :
Code :
ALTER TABLE tblName ADD idTable INTEGER GENERATED ALWAYS AS IDENTITY, unAutrechamp varchar;
... fonctionnerait-il ?
Je ne suis pas trop à l'aise avec ces manipulations de tables, et je ne dispose d'un aucun outil graphique (GUI ou autre) permettant de faire ces opérations, j'aimerais donc une confirmation

Merci d'avance.
xss.xas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2006, 16h17   #5
Nouveau Membre du Club
 
Développeur Java
Inscription : septembre 2006
Messages : 37
Détails du profil
Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : septembre 2006
Messages : 37
Points : 29
Points : 29
Après divers échecs, je me suis rendu compte que cette requête fonctionne bel et bien, cependant si la table contient déjà des données, cette requête est risquée puisqu'elle fera une ou plusieurs des choses suivantes (selon les systèmes) :

- Planter la table, qui retournera un code equivalent à "Ressource indisponible", en attendant que vous alliez voir l'admin DB2 qui lancera une "REORG" de la table. (L'etat du tablespace est aléatoire, pour ma part c'était REORGP, pour "REORG pending"). nb: pending veut dire "en attente".
- Ramer la table en question jusqu'à ce que les identifiants soient tous calculés, si la REORG est automatique ... (les petits veinards que vous êtes si c'est le cas )

L'admin de ma boite n'arrivant pas à faire la REORG(anisation de la table) a dû droper la table et la recréer. Soyez donc prudent avec cette requête et consultez votre administrateur auparavant.
xss.xas 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 14h30.


 
 
 
 
Partenaires

Hébergement Web