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

Oracle Discussion :

[Séquence] Question générale


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Par défaut [Séquence] Question générale
    bonjour

    dans une de mes tables j'ai comme clé primaire un numéro automatique(auto incrementable). mais puisque je teste encore ma base dans je supprime beaucoup d'enregistrement, le numéro automatique est à 220 alors que j'ai un sel enregistrement dans ma table.

    pour cela on m'a dit qu'il faut créer un index sur ce numéro et que ce dernier ce chargera de rordonancer le numéro automatique à chaque nouveau enregistrement.

    déja je voulais savoir si c'étai vrai et sinon esque quelqu'un aurait un exemple ?

    merci

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est absolument pas vrai

    Une méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE table
    SET col_pk = col_pk - 220;

  3. #3
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    m'enfin la séquence, elle, reste à 220......

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Par défaut
    alors c'est ca ou pas ca?

    mais esqui'l ny pas quelque chose pour mettre a jour ce numéro automatique a chaque ajout ou suppression d'enregistrement?

  5. #5
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Comprend pas tout. Pas numéro automatique tu veux dire sequence ?
    si c'est il suffit de faire un alter sequence pour le remettre à zero.
    Mais je suis pas sur d'avoir tout compris :

  6. #6
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Une séquence incrémente son numéro à chaque utilisation. Il n'y a pas de retour arrière possible, sauf recréer la séquence.

  7. #7
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    en effet, la séquence reste à 220. En fait il faut recréer la séquence

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Par défaut
    celle la c'est ma séquence
    create sequence seq_wor;


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    create or replace trigger trg_wor
    before insert on works for each row
    declare
    	next_num_wor int;
    begin
    select seq_wor.nextval into next_num_wor from dual;
    :new.num_wor := next_num_wor;
    end;
    /
    il faut que je la supprime alors ?

  9. #9
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Il faut donc la supprimer et la recréer avec la nouvelle valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DROP SEQUENCE SEQ_WOR
    /
     
    CREATE SEQUENCE SEQ_WOR
     START WITH     nouvelle_valeur_de_départ
     INCREMENT BY   1
     NOCACHE
     NOCYCLE
    /
    Mais franchement, je ne vois pas l'interêt d'une séquence s'il s'agit de la modifier à chaque suppression dans la table.

    Logiquement, les séquence sont utilisées pour obtenir un identifiant unique (souvent la PK de la table). Les "trous" dans ce type d'identifiant ne posent aucun problème.

  10. #10
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut Re: [Séquence ]Question géneral
    Citation Envoyé par tounsi
    le numéro automatique est à 220 alors que j'ai un sel enregistrement dans ma table.
    quel est le problème? la séquence est là pour trouver des numéros uniques, mais ni ordonnés ni continus.

    Il n'y a pas de problème à avoir des trous dans ta clés primairs, si l'enregistrement 1 est à 21, le 2 à 221, le 3 à 241, tout est bien dans le meilleur des mondes, non?

Discussions similaires

  1. [LDAP] Questions générales sur LDAP
    Par guiguisi dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 25/05/2005, 10h05
  2. VUES : questions générales
    Par Equus dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 01/10/2004, 10h37
  3. question générale sur les conteneurs
    Par tut dans le forum C++
    Réponses: 6
    Dernier message: 01/09/2004, 10h11
  4. Question générale sur les affectations ?
    Par Clemaster dans le forum C++
    Réponses: 5
    Dernier message: 09/08/2004, 17h03
  5. [SGBD]Questions générales.
    Par Mobaladje dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 21/05/2004, 19h19

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