Supprimer un tuple dans un tuple ?

Répondre
romeofi05
le 08/08/2003 à 10:22
romeofi05
Salut,

Lorsqu'on supprime un tuple dans une table, et qu'on a un champ (id par exemple) qui est en auto_increment, bah le prochain tuple qu'on inscrira, il aura la valeur de son id qui aura pas pris en compte la suppression

Genre :
id = 1
id = 2
suppression de id=2

--> inscription nouveau tuple

on a alors dans la table :
id=1
id=3

Est-il possible que id "comprenne" qu'on a supprimé un tuple, ou bien faut-il renuméroter tous les tuples pour avoir une suite bien "logique" ???

Merci !
I say the hip, the hop, the hippy to the hip-hop, till you don't stop
Layer
le 08/08/2003 à 10:26
Layer
une fois que le champ est en auto increment, tu na pas la possibilité de "dire" a mysql qu'une ligne a été supprimer et donc que le prochain doit prendre cette valeur
Error 500 : internal brain error
romeofi05
le 08/08/2003 à 10:27
romeofi05
donc je suis forcé de mettre à jour le id de chaque tuple ?????????,
I say the hip, the hop, the hippy to the hip-hop, till you don't stop
Layer
le 08/08/2003 à 10:32
Layer
est-ce que tu as un but précis en faisant ça ?
Error 500 : internal brain error
romeofi05
le 08/08/2003 à 10:34
romeofi05
c clair que ça va pas me servir à grand chose que dans mes tables les enregistrements soient "bien rangés", mais c'était plus pour savoir si c'était possible quoi !!!!
I say the hip, the hop, the hippy to the hip-hop, till you don't stop
LA GLOBULE
le 08/08/2003 à 10:38
LA GLOBULE
Ou bien ne met pas d'auto_increment dans ta table mysql, et gere ton increment avec PHP.
C'est à dire qu'avant d'inerer un truc, ben tu fais d'abord une requete qui te retourne l'id le plus grand.
Tu inseres alors tou nouveau tuple avec cet id trouvé + 1.

Mais bon...
Je ne pense pas que cela soit tres grave si tes identifiants ne se suivent pas...
romeofi05
le 08/08/2003 à 10:40
romeofi05
oué ²ment, ça ne me sert à rien.
Ce qui me sert par contre, c'est lorsque je vide une table : l'id garde quand même sa prochaine valeur en mémoire... comment la réinitialiser ?????
I say the hip, the hop, the hippy to the hip-hop, till you don't stop
Layer
le 08/08/2003 à 10:46
Layer
avec les dernieres versions de mysql on peux faire :

(fait sous phpmyadmin)
ALTER TABLE `table` PACK_KEYS = 0 CHECKSUM = 0 DELAY_KEY_WRITE = 0 AUTO_INCREMENT = 2
par exemple
Error 500 : internal brain error
LA GLOBULE
le 08/08/2003 à 10:48
LA GLOBULE
Je sais qu'avec phpmyadmin, quand je fais une exportation de tables, j'ai le truc suivant (par exemple) :

CREATE TABLE bank_pseudo (
id bigint(20) NOT NULL auto_increment,
pseudo varchar(40) NOT NULL default '',
sexe char(1) NOT NULL default '',
age char(2) NOT NULL default '',
pays varchar(50) NOT NULL default '',
ville varchar(50) NOT NULL default '',
profil longtext NOT NULL,
UNIQUE KEY id (id)
) TYPE=MyISAM AUTO_INCREMENT=6 ;

Et la, cette table est vide.
Et des que j'insere un nouveau tuple, ben l'id prend la valeur 6.
Et comme moi, tu vois que dans la structure de la table, ben y a AUTO_INCREMENT=6 qui est specifie.

A chercher dans cette direction je pense :)
Répondre
LoadingChargement en cours