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

Langage SQL Discussion :

Réinitialisation d'une clé auto incrémentée


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut Réinitialisation d'une clé auto incrémentée
    Dans la série des questionnements du débutant sur ses tables, je me demandais: est-il possible de 'réinitialiser' une clé auto incrémentée (primaire ou non).

    Dans l'idée je fais des tests sur une base qui sera à terme finale, je n'ai pas forcément la main dessus pour redétruire toute la structure et la recréer derrière, donc je me demandais si on pouvait gérer ça en SQL, avec une requête.

    Parce que j'ai inséré pas mal de champs lors de mes tests, je les ai tous enlevés, mais maintenant à la création d'une nouvelle entrée, il me créé un ID de 120, or cet ID est affiché, et j'aimerais que dans mon programme ça commence à 0.

    Voilà, je sais pas si c'est très clair, et s'il y a une solution je suis preneur, j'ai cherché un peu sur internet, mais n'ai rien trouvé.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Respectez les règles du forum, ça nous permettra de gagner du temps tous les 2 : quel est votre SGBD et sa version ?
    Les clés automatiques sont gérées différemment selon les SGBD !

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 115
    Points : 28 480
    Points
    28 480
    Par défaut
    Quel SGBD ?

  4. #4
    jnore
    Invité(e)
    Par défaut
    Si ton SGBD est postgresql, un vacuum devrait faire l'affaire, ou alors il faut refaire un start sur la sequence concernée par ta clé primaire.

    Si c'est access, un compactage devrait suffire.

    Si c'est Mysql...je laisse le soin à d'autres.

  5. #5
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Désolé, je ne savais pas que c'était dépendant de la version utilisée.

    J'aimerais une réponse pour MySQL et PostGRE SQL puisque je suis amené à utiliser les deux (c'est pourquoi je n'avais pas précisé lors de mon premier message, je m'en excuse )

  6. #6
    jnore
    Invité(e)
    Par défaut
    Pour postgresql:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    ALTER SEQUENCE nom_sequence
        INCREMENT 1  MINVALUE 1
        MAXVALUE 9223372036854775807  START 1
        CACHE 1;
    Le 'START 1' fait repartir ton champ serialisé à 1.

  7. #7
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Ok, merci pour cette réponse

    Et en MySQL, c'est possible ou pas en fait?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    Pour MySQL, si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TRUNCATE TABLE table_a_effacer
    et que tu insere un nouvel element dans cette table tu devrais retrouve ton enregistrement en id "1".
    Fais le test et dis moi, ca m'interresse aussi

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par cyberio
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TRUNCATE TABLE table_a_effacer
    SURTOUT ne pas effectuer cette commande si vous ne voulez pas perdre définitivement le contenu de la table en question !

  10. #10
    jnore
    Invité(e)
    Par défaut
    Citation Envoyé par cyberio
    Pour MySQL, si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TRUNCATE TABLE table_a_effacer
    et que tu insere un nouvel element dans cette table tu devrais retrouve ton enregistrement en id "1".
    Fais le test et dis moi, ca m'interresse aussi

    Pourquoi pas un DROP Database !!!

Discussions similaires

  1. Oracle 10g - Définir une colonne auto-incrémentée
    Par david71 dans le forum Oracle
    Réponses: 2
    Dernier message: 14/01/2008, 17h40
  2. Qu'est-ce qu'une clef auto-incrémentable?
    Par Milyshyn76 dans le forum Modélisation
    Réponses: 4
    Dernier message: 28/11/2007, 22h26
  3. [MySQL] récupérer une valeur auto incrémentée
    Par tonton51 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/06/2007, 16h23
  4. Longueur d'une clé auto-incrémentée
    Par licorne dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/06/2007, 10h05
  5. [MSSQL 2000] Réinitialiser un compteur d'auto-incrément
    Par major2 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/01/2006, 15h20

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