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

Requêtes MySQL Discussion :

Réinitialiser les ID pour éviter d'avoir des "trous"


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut Réinitialiser les ID pour éviter d'avoir des "trous"
    Bonjour,

    J'ai une table avec une colonne ID et une autre NOM.
    J'aimerai savoir s'il y a un moyen pour lorsque je supprime un enregistrement de réinitialiser les ID pour éviter d'avoir des "trous" .

    Merci d'avance

  2. #2
    Membre averti Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Points : 332
    Points
    332
    Par défaut
    slt...

    Si tu parle de pouvoir changer les id´s et si ils sont des clées primaires, ce que t´essaye de faire n´est pas recommander...

    Une cle primaire ne dois jamais etre reutiliser...

    Si c´est pas le cas, oui c´est possible....
    Mais comme tu dis que ta table n´a que id et nom... Et meme dans ce cas, ton id n´est pas utiliser dans d´autre tables?

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    non l'idée n'est pas utilisé.

    En faite, je fais une petite application pour trier des users. Rien de compliqué...

  4. #4
    Membre averti Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Points : 332
    Points
    332
    Par défaut
    slt...

    Sans savoir exactement ce que tu pretend faire.

    Tu peut passer para une table temporaire, par des curseurs ou alors plus simple:

    tu fais une nouvelle table(Table2) exactement pareille que la table d´origine:

    apres tu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO `table2` SELECT LES_CHAMPS
     FROM `table_ORIGINE`
    et tu change les noms des tables....

    par curseur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `asdr` $$
    CREATE PROCEDURE `asdr`()
    BEGIN
    DECLARE done INT DEFAULT 0;
    DECLARE a int;
    DECLARE compteur int;
    DECLARE cur1 CURSOR FOR SELECT id FROM TA_TABLE order by id;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
    OPEN cur1;
    set compteur=1;
      REPEAT
        FETCH cur1 INTO a;
        IF NOT done THEN
          update TA_TABLE set id= compteur where id=a;
          set compteur = compteur+ 1;
       END IF;
     UNTIL done END REPEAT;
    END $$
    DELIMITER ;
    Et attention ... avec les curseurs, tu peut avoir des problemes si ta des foreign key, ou si tu as des id en doubles (dans cet exemple) ... par exemple si tu as id= ( 2, 3, 4 ,2) ... ca vas pas marcher....

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/10/2011, 17h18
  2. programmation pour éviter le message: "des liaisons existent.."
    Par babou466 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/03/2009, 14h29
  3. Réponses: 2
    Dernier message: 13/01/2008, 20h51
  4. Réponses: 3
    Dernier message: 30/08/2007, 15h41
  5. [Mail] verifier les champs pour éviter le mail vide
    Par temperature dans le forum Langage
    Réponses: 5
    Dernier message: 04/05/2006, 11h26

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