begin process at 2012 05 28 17:00:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Utiliser AUTO_INCREMENT en MySQL tout en n'ayant pas de trous dans le champs...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Utiliser AUTO_INCREMENT en MySQL tout en n'ayant pas de trous dans le champs...

dimanche 21 août 2005 à 09:38:08 | Utiliser AUTO_INCREMENT en MySQL tout en n'ayant pas de trous dans le champs...

azerty25

Hi all
J'ai une DB MySQL avec une table qui contient le champs ID en AUTO_INCREMENT. Le soucis, c'est que quand on supprime une entrée dans la table, ça fait un trou dans le champ ID, par exemple $ID=1, $ID=2, $ID=4, quand on a supprimé le 3.
Est-ce possible que lors d'une supression, tout les champs ayant un ID suppérieur à celui supprimé voient leur ID soustrait de 1 pour ne jamais avoir ces trous ? (sans devoir faire une routine de boucle qui se charge de faire ça...)

== @Z3RtY25 ==
dimanche 21 août 2005 à 10:42:18 | Re : Utiliser AUTO_INCREMENT en MySQL tout en n'ayant pas de trous dans le champs...

Anthomicro

Salut,

bah lorsque tu supprimes un id : DELETE FROM table WHERE id=machin

ensuite :

UPDATE table SET id=id-1 WHERE id>machin


    dimanche 21 août 2005 à 11:12:50 | Attention

    grandvizir

    Oui, mais il ne faut pas oublier de changer AUTO_INCREMENT, car si un champ est ajouté, y'aura encore un trou avec cette fois un décalage de 2 s'il supprime encore une entrée.

    =============
    ViewVite XP : HTML
    dimanche 21 août 2005 à 11:15:08 | Re : Utiliser AUTO_INCREMENT en MySQL tout en n'ayant pas de trous dans le champs...

    Anthomicro

    ouais c'est vrai, ALTER TABLE autoincrement=autoincrement-1

    je ne sais pas si mysql interprètera ça, si il ne l'interprète pas il faut passer par le maximum+1 de l'id et faire un alter table autoincrement=max


      dimanche 21 août 2005 à 11:43:11 | Re : Utiliser AUTO_INCREMENT en MySQL tout en n'ayant pas de trous dans le champs...

      azerty25

      Merci pour vos réponse :)
      Mais pour UPDATE table SET id=id-1 WHERE id>machin, il faut quand même passer par une boucle non ? Car il peut y avoir 100,1000 champs après l'ID qu'a été supprimé.
      Anthomicro, j'ai pas trop compris ton dernier message :(

      == @Z3RtY25 ==
      dimanche 21 août 2005 à 11:46:44 | Re : Utiliser AUTO_INCREMENT en MySQL tout en n'ayant pas de trous dans le champs...

      Anthomicro

      "Mais pour UPDATE table SET id=id-1 WHERE id>machin, il faut quand même passer par une boucle non ?"

      Non, une seule requête suffit si tu supprimes un champ, après si t'en supprime 1000 bah tu mets une variable qui compte le nombre de champs supprimés :

      'UPDATE table SET id=id-'.$variable.' WHERE id>machin'

      ensuite pour mon dernier message il faut que le prochain id soit bien l'id maximum+1 donc une fois le nombre de champs comptés (et enlevés) il faut bien définir un prochain id (le prochain enregistrement inséré aura cette valeur) et donc pour modifier l'autoincrement on fait une requête ALTER TABLE nom_table AUTOINCREMENT=valeur

      ou valeur est la prochaine valeur de l'id du futur enregistrement inséré




        Cette discussion est classée dans : mysql, champs, id, auto, increment


        Répondre à ce message

        Sujets en rapport avec ce message

        Champs id auto_increment [ par daporoty ] Bonjour,J'ai fait une table avec 22 champs, et un formulaire (1) pour les remplir.Puis, pour les besoins d'un formulaire (2) de recherche, j'ai rajout Problème de MySQL -> auto-incrément et select derniere valeur d'une colonne [ par jcheseaux ] Bonjour ! Je suis débutant en communication PhP MySQL mais j'apprend vite :-) mias la je sèche un peu alors j'espère que vous pourrez répondres à mes auto_increment ne marche pas !!!!! [ par potibulle ] Bonjour, J'ai créé cette table avec easyPHP mySql : CREATE TABLE `annonces_occaz` ( `ID` INT( 1 ) NOT NULL AUTO_INCREMENT , `titre` VARCHAR( 50 ) NO mysql auto increment [ par sidf ] salut à tous...comment est il possible de fixer un auto increment (par ex à 20000) qui ne revient pas à 0 quand la table est vidée ?merci d'avance Question bete sur auto increment mysql [ par fmf ] voila c est une question toute bete, je voudrais creer une table avec pour identifiant un numero autoincrementé, cependant je voudrais que ce numero c comment recupérer automatiquement dans les champs d'un formulaire, les donnees affichées aprés selection, dans une liste déroulante ? [ par schmoldu21 ] Bonjour, je debute en php, et j'ai un formulaire avec une liste deroulante qui est alimentée par une base de donnees mysql, dans ma liste deroulante, Prob requete mysql [ par zzzzzz ] salut phpmyadmin me genere ca j'aimerai faire un champ qui s'auto incremente mais ca marche pas la requete de phpmyadmin:Erreurrequête SQL : ALTER T problème mysql avec auto increment [ par redsungraphics ] J'ai une base avec une table contenant le champ ID type tinyint(4) en auto increment. Le problème est que l'autoindex est bloqué à 127 ce qui fait que auto increment [ par bob ] Bonjour ! Alors voila, j'ai une question qui va etre surement trés simple pour vousvoila le sql de mla table CREATE TABLE `blogs` ( `id` smallint(6) Faire appel à un champ Mysql "auto_increment" [ par levieuxjah ] Bonjour à tous, J'aimerais savoir comment faire appel au champ "id_user" : Champ  Type Attributs Null Défaut Extra


        Nos sponsors


        Sondage...

        CalendriCode

        Mai 2012
        LMMJVSD
         123456
        78910111213
        14151617181920
        21222324252627
        28293031   

        Consulter la suite du CalendriCode

        A découvrir



         
        Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
        CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
        CodeS-SourceS.com© est une marque déposée tous droits réservés

        Google Coop CodeS-SourceS Google Coop CodeS-SourceS
        Temps d'éxécution de la page : 5,070 sec (3)

        Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales