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

Modélisation Discussion :

définir l'auto increment manuellement à un nombre donné


Sujet :

Modélisation

  1. #1
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut définir l'auto increment manuellement à un nombre donné
    Bonjour,

    Je me doute que cette opération est délicate et qu'il faut être sûr de ce que l'on fait...

    Comment peut on reseter l'autoincrement, ou le définir à une valeur données....

    Tout ceci pour éviter que, après une suppression importante de données si pas toute, l'auto-increment ne continue à + 100, + 1000 alors que ce sont les premières données dans la table...

    merci de vors réponses

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Le numéro sert de clé primaire ?

    Si oui, la procédure n'est pas simple.

    Sinon, en mode création, tu supprimes le champ et tu en recrées un nouveau.

    Mais je ne vois pas grand intérêt à ce genre de manip...

    Un numéro auto n'est pas un identifiant...

    Si c'est pour faire joli

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter table matable alter column nomchamp  counter(numdeb,increment);
    ou numdeb et increment sont deux entiers

    positifs de préférence
    Elle est pas belle la vie ?

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour Random,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table matable alter column nomchamp  counter(numdeb,increment);
    Ce code permet de modifier la valeur de départ d'un champ num auto et son incrément, non ?

    Super pratique pour une table vide. Mais cela ne semble pas être le cas.

    Et les relations si ce champ num auto sert de clé primaire ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  5. #5
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    Citation Envoyé par Domi2
    Sinon, en mode création, tu supprimes le champ et tu en recrées un nouveau.
    oui c'est ce que je fais lorsque je n'ai plus du tout de données dans la table
    j'enlève l'auto increment en mode création puis je le remet pour qu'il retombe à 0.

    mais si il y a encore des données?

    Citation Envoyé par Domi2
    Le numéro sert de clé primaire ?

    Mais je ne vois pas grand intérêt à ce genre de manip...

    Un numéro auto n'est pas un identifiant...

    Si c'est pour faire joli

    Domi2

    bien sur qu'il sert de clé primaire!!!!
    bien sur qu'il peut être identifiant!!!!

    C'est justement principalement à cela qu'il sert pour moi, c'est pas pour faire joli

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    ben cela n'affecte pas les enregistrements existants
    pour le reste l'utilisation de telles commandes nécessite un compréhension
    solide de leurs conséquences

    par contre cela peut rendre des services considérables
    en incrémentant avec un pas de 10 par exemple
    ou en initiant un compteur à 2007000 au 1 janvier 2007

    je ne porte pas de jugement sur la solution je me contente de l'indiquer
    Elle est pas belle la vie ?

  7. #7
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    merci random, si on peut lancer cette commande alors qu'il y a deja des enregistrements, c'est parfait cela me convient.

    je ne sias pas ce que sous-entendais domi2

  8. #8
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Re,

    Par identifiant, j'entend par exemple numéro (de factures)...

    Si on a besoin absolument d'une numérotation sans "trous", il est préférable de créer un champ spécifique et de l'incrémenter par code...

    Maintenant, si tu dois absolument renuméroter...

    01) Se mettre au calme

    02) Faire des copies de sauvegarde

    03) Afficher les relations, noter toutes les relations du champ numauto et leurs types

    04) Ouvrir la table contenat le champ numauto à modifier

    05) Modifier le type du champ numauto ==> numérique entier long

    06) Vérifier que les numéros n'ont pas changer

    07) Facultatif, trier les enregistrement dans l'ordre alphabétique

    08) Ajouter un champ "NumAutoNouveau" ==> NuméroAuto

    09) Faire une requête sélection affichant les 2 champs + nom + prénom par exemple, et l'imprimer

    10) Faire des requêtes de mise à jour sur toutes les tables en relation avec la table modifiée, en remplaçant l'ancienne valeur de la clé par la nouvelle

    11) Aller dans les relations et supprimer les relations entre les tables

    12) Ouvrir en modification la table à laquelle on a rajouté un nouveau champ numauto

    13) Supprimer l'ancien champ

    14) Déplacer le nouveau champ en 1ère position

    15) Renommer le nouveau champ comme le précédent

    16) Le déclarer comme clé primaire et enregistrer les modifications.

    17) Aller dans les relations et toutes les rétablir

    18) Tester la base de fond en comble

    Je me suis bien relu, j'espère n'avoir rien oublier...

    De toute façon à tester avant de faire la conversion définitive

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  9. #9
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Re,

    ben cela n'affecte pas les enregistrements existants
    Si tu as déjà des enregistrements dans ta table, ils vont garder leur ancienne numérotation.

    Et ce n'est semble-t-il pas ce que tu cherches...

    La nouvelle valeur et l'incrément s'appliqueront uniquement aux nouveaux enregistrements (à moins que j'utilise mal cette solution).

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  10. #10
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    la solution de random me convenait.

    non il ne s'agit pas d'avoir une numérotation sans trous, sinon effectivement les numero-auto ne sont pas à prendre.

    En fait, concretement, c'est pour quelques petites applications où la clé primaire est un numéro auto, et qu'elle est affichée dans un tableau par exemple.
    Pour les petites tables ou j'ai fais assez bien de modifications antérieures, mais qui dans le futur ne devrait plus en subir de trop (voire plus du tout), par soucis d'affichage et de logique je préfère éviter que mes numéros soient dans une liste telle que celle-ci:

    1
    2
    4
    6
    7
    8
    21

    22
    24

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    si ce n'est que cela un simple compactage suffit
    Elle est pas belle la vie ?

  12. #12
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    Citation Envoyé par random
    si ce n'est que cela un simple compactage suffit
    c'est à dire

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/07/2010, 20h20
  2. [MySQL] probleme supression des données via un id auto increment
    Par sooprano dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/02/2010, 11h10
  3. [SQL] Commencer increment id à partir d'un nombre donné
    Par Flushovsky dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/10/2007, 15h52
  4. définir l'auto increment manuellement à un nombre donné
    Par cortex024 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/05/2007, 09h43
  5. Réponses: 1
    Dernier message: 27/06/2006, 13h47

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