AJOUT D4UNE LIGNE DANS UNE TABLE SQL
Fermé
step
Messages postés
27
Date d'inscription
vendredi 8 juin 2001
Statut
Membre
Dernière intervention
10 juillet 2001
-
20 juin 2001 à 10:12
step Messages postés 27 Date d'inscription vendredi 8 juin 2001 Statut Membre Dernière intervention 10 juillet 2001 - 20 juin 2001 à 14:51
step Messages postés 27 Date d'inscription vendredi 8 juin 2001 Statut Membre Dernière intervention 10 juillet 2001 - 20 juin 2001 à 14:51
A voir également:
- AJOUT D4UNE LIGNE DANS UNE TABLE SQL
- Table ascii - Guide
- Table des matières word - Guide
- Aller à la ligne dans une cellule excel - Guide
- Partager photos en ligne - Guide
- Site de vente en ligne particulier - Guide
2 réponses
create table CCM1(
clef int(10) auto increment,
etc........,
);
Voila...et puis apres tu fais ta jointure.
A bientot
clef int(10) auto increment,
etc........,
);
Voila...et puis apres tu fais ta jointure.
A bientot
Tittom
Messages postés
422
Date d'inscription
mardi 30 mai 2000
Statut
Membre
Dernière intervention
10 janvier 2007
128
20 juin 2001 à 14:24
20 juin 2001 à 14:24
Salut,
La solution indiquée par lol ne fonctionne pas car "auto increment" n'est pas une option valide d'Oracle.
Dans ton cas, je pense que l'utilisation d'une séquence est appropriée. Une séquence est un compteur dont la valeur est auto incrémentée, et stockée dans la base.
pour créer la sequence en question :
CREATE SEQUENCE seq_nom_table;
Une fois qu'elle est créée, tu peux accéder à sa valeur de deux manières :
- seq_nom_table.currval est une fonction qui retourne la valeur actuelle de la séquence.
- seq_nom_table.nextval est une fonction qui retourne la valeur actuelle de la séquence, et l'incrémente automatiquement (ou l'inverse, je ne sais plus).
Tu peux ajouter des paramètres à ton CREATE SEQUENCE pour indiquer le n° de départ, l'incrément, etc... (voir doc Oracle)
Une fois que tu as ta séquence, tu peux créer un trigger qui se déclenchera AVANT chaque insert dans ta table, et qui se chargera de mettre à jour la valeur de la colonne devant être auto incrémentée en récupérant le nextval de la séquence.
Voilà pour le principe. Je n'ai pas Oracle sous la main alors je ne préfère pas te donner d'exemple sans le tester, mais tu peux chercher "oracle auto increment" sur http://groups.google.com, si tu te débrouilles en anglais tu trouveras des exemples que tu pourras adapter à ton cas...
J'espère que cela t'aidera...
Tittom, adepte de l'Oracle :))
La solution indiquée par lol ne fonctionne pas car "auto increment" n'est pas une option valide d'Oracle.
Dans ton cas, je pense que l'utilisation d'une séquence est appropriée. Une séquence est un compteur dont la valeur est auto incrémentée, et stockée dans la base.
pour créer la sequence en question :
CREATE SEQUENCE seq_nom_table;
Une fois qu'elle est créée, tu peux accéder à sa valeur de deux manières :
- seq_nom_table.currval est une fonction qui retourne la valeur actuelle de la séquence.
- seq_nom_table.nextval est une fonction qui retourne la valeur actuelle de la séquence, et l'incrémente automatiquement (ou l'inverse, je ne sais plus).
Tu peux ajouter des paramètres à ton CREATE SEQUENCE pour indiquer le n° de départ, l'incrément, etc... (voir doc Oracle)
Une fois que tu as ta séquence, tu peux créer un trigger qui se déclenchera AVANT chaque insert dans ta table, et qui se chargera de mettre à jour la valeur de la colonne devant être auto incrémentée en récupérant le nextval de la séquence.
Voilà pour le principe. Je n'ai pas Oracle sous la main alors je ne préfère pas te donner d'exemple sans le tester, mais tu peux chercher "oracle auto increment" sur http://groups.google.com, si tu te débrouilles en anglais tu trouveras des exemples que tu pourras adapter à ton cas...
J'espère que cela t'aidera...
Tittom, adepte de l'Oracle :))
step
Messages postés
27
Date d'inscription
vendredi 8 juin 2001
Statut
Membre
Dernière intervention
10 juillet 2001
20 juin 2001 à 14:51
20 juin 2001 à 14:51
Merci pour ta reponse .
N'y-a-t-il pas une solution avec IDENTITY (1, 1) ?
N'y-a-t-il pas une solution avec IDENTITY (1, 1) ?
20 juin 2001 à 12:05
mais j'ai une erreur lorsque j'essaie :
Si tu as une idée ? *
Erreur SQL:ORA-00922: missing or invalid option
Code SQL :
create table ST_LIBELLE
(
ID_LIBAUTO NUMBER(3) NOT NULL auto increment,
LIBELLE VARCHAR2(50) null,
constraint PK_ST_LIBELLE primary key (ID_LIBAUTO)
)
TABLESPACE STAT_TABLES_SPACE
/