Renuméroter les lignes d'une table InnoDB
Bonjour, Il me vient une question très pertinente, j'ai une table sous MySQL qui possède une clé primaire sur une colonne 'id' avec des auto_increment. J'ai des lignes qui vont de 1 à 10 mettons, si j'efface la ligne 8, comment je fait pour rénuméroter les lignes de ma table afin de ne pas avoir de trous ? J'ai cherché dans la doc mais je n'ai pas trouvé ce que je voulais, merci.
Re: Renuméroter les lignes d'une table InnoDB
J'avais penser sinon à passer par une table temporaire pour stocker l'autre colonne (pas celle des id), et ré-alimenter la table initiale pour les id s'ajustent en conséquence, mais pourquoi le soft ne le fait pas automatiquement ? Le mar 24/02/2004 à 11:17, Nicolas Rueff a écrit : Ainsi parla Laurent Oliva le 055ème jour de l'an 2004: Bonjour, Il me vient une question très pertinente, j'ai une table sous MySQL qui possède une clé primaire sur une colonne 'id' avec des auto_increment. J'ai des lignes qui vont de 1 à 10 mettons, si j'efface la ligne 8, comment je fait pour rénuméroter les lignes de ma table afin de ne pas avoir de trous ? Je vois bien une technique très bourrin: supprimer la colonne id, puis recréer la colonne. Ça marche avec du myisam, reste à savoir si le type innodb le supporte. Attention toutefois: la manip ne fonctionne bien que si ta clé primaire est la seule indexant ta table. -- Nicolas Rueff · Montbéliard · France · http://rueff.homelinux.org (^[EMAIL PROTECTED] · GPG 0xDD44DAB4 /v\ Jabber [EMAIL PROTECTED] · ICQ 97700474 __/ « We are Penguin. Resistance is futile. You will be assimilated. »
Re: Renuméroter les lignes d'une table InnoDB
Selon Laurent Oliva [EMAIL PROTECTED]: J'avais penser sinon à passer par une table temporaire pour stocker l'autre colonne (pas celle des id), et ré-alimenter la table initiale pour les id s'ajustent en conséquence, mais pourquoi le soft ne le fait pas automatiquement ? Bonjour Laurent (;-) ) En fait, soit tu utilises un insert-id pour ne pas avoir à gérer tes numéros, et tu laisses donc faire la machine.. Soit tu gères un identifiant toi même... Mais tu ne dois pas changer ce numéro (ou alors, tu peux, si tu sais ce que tu fais... Mais le SGBDR ne le fait pas lui même.. Sinon, ton intégrité référentielle est compromise... Ou alors, il faudrait d'autorité qu'il change toutes les cles étrangères qui pointent sur ce tuple ? Tu vois que ce serait bizarre.. En théorie, tu caches même ce numéro à l'utilisateur, souvent... (regarde par exemple l'identifiant d'une news dans un site d'information..)
Re: Renuméroter les lignes d'une table InnoDB
Selon Laurent Oliva [EMAIL PROTECTED]: J'avais penser sinon à passer par une table temporaire pour stocker l'autre colonne (pas celle des id), et ré-alimenter la table initiale pour les id s'ajustent en conséquence, mais pourquoi le soft ne le fait pas automatiquement ? j'ai aussi une idée qui consiterai à chercher la ligne dont l'ID est le plus grand et de lui donné l'ID de la ligne que tu va supprimer mais ça dépend si l'ID à une importance (genre classementou autre), ça à le bénéfice d'être une opération simple à réaliser M. Le mar 24/02/2004 à 11:17, Nicolas Rueff a écrit : Ainsi parla Laurent Oliva le 055ème jour de l'an 2004: Bonjour, Il me vient une question très pertinente, j'ai une table sous MySQL qui possède une clé primaire sur une colonne 'id' avec des auto_increment. J'ai des lignes qui vont de 1 à 10 mettons, si j'efface la ligne 8, comment je fait pour rénuméroter les lignes de ma table afin de ne pas avoir de trous ? Je vois bien une technique très bourrin: supprimer la colonne id, puis recréer la colonne. Ça marche avec du myisam, reste à savoir si le type innodb le supporte. Attention toutefois: la manip ne fonctionne bien que si ta clé primaire est la seule indexant ta table. -- Nicolas Rueff · Montbéliard · France · http://rueff.homelinux.org (^[EMAIL PROTECTED] · GPG 0xDD44DAB4 /v\ Jabber [EMAIL PROTECTED] · ICQ 97700474 __/ « We are Penguin. Resistance is futile. You will be assimilated. » -- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Pensez à rajouter le mot ``spam'' dans vos champs From et Reply-To: To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] -- Emmanuel Bouthenot - Kolter MAIL : [EMAIL PROTECTED] GPG : 0x414EC36E WWW : http://kolter.free.fr JABBER : [EMAIL PROTECTED] TEL : (+33) 06 17 29 01 91
Re: Configure ton MUA [was: Re: Renuméroter les lignes d'une table InnoDB]
Le mar 24/02/2004 à 11:39, Nicolas Rueff a écrit : Ainsi parla Laurent Oliva le 055ème jour de l'an 2004: Bonjour, Il me vient une question très pertinente, j'ai une table sous MySQL qui possède une clé primaire sur une colonne 'id' avec des auto_increment. J'ai des lignes qui vont de 1 à 10 mettons, si j'efface la ligne 8, comment je fait pour rénuméroter les lignes de ma table afin de ne pas avoir de trous ? Deux trucs qui seraient sympa: 1) vire ton reply-to, histoire d'éviter que quelqu'un te réponde malencontreusement en privé en voulant répondre à la liste ; 2) ne me mets pas en To: dans tes réponses quand tu mets la liste en CC: d'une part je suis bien abonné à la liste, d'autre part ça évitera à d'autres tètes en l'air de me faire parvenir une réponse destinée à la liste (c.f. FW dans ce thread). J'ai glissé sur répondre à tous au lieu de répondre à la liste, je vous présente toutes mes confuses =-) D'avance, merci. Et sans rancune. -- Nicolas Rueff · Montbéliard · France · http://rueff.homelinux.org (^[EMAIL PROTECTED] · GPG 0xDD44DAB4 /v\ Jabber [EMAIL PROTECTED] · ICQ 97700474 __/ « We are Penguin. Resistance is futile. You will be assimilated. »
Re: Renuméroter les lignes d'une table InnoDB
Le 12472ième jour après Epoch, Laurent Oliva écrivait: Bonjour, Il me vient une question très pertinente, j'ai une table sous MySQL qui possède une clé primaire sur une colonne 'id' avec des auto_increment. J'ai des lignes qui vont de 1 à 10 mettons, si j'efface la ligne 8, comment je fait pour rénuméroter les lignes de ma table afin de ne pas avoir de trous ? J'ai cherché dans la doc mais je n'ai pas trouvé ce que je voulais, merci. Juste une question. Pourquoi vouloir boucher les trous ? Ça n'a à priori aucune espèce d'importance. Ou alors si ça en a, c'est que ta gestion de la base est un peu foireuse ;) ... On fait pas suivant avec id += 1 !! -- Actually, typing random strings in the Finder does the equivalent of filename completion. -- Discussion on file completion vs. the Mac Finder