begin process at 2012 05 30 16:59:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

mysql me rend fou :(


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

mysql me rend fou :(

lundi 6 octobre 2008 à 12:45:56 | mysql me rend fou :(

TropNul

Bonjour,

Et merci d'avance à celles et ceux qui me répondront.

Voilà mon problème. Lorsque par exemple, j'ajoute un 'row' à une table, et que le dernier 'id' (PRIMARY key) était par exemple, 13, le nouveau lui aura comme 'id', le nombre 14. C'est bien jusque là car ce champ est en auto-incrémentation.

Par contre, là ou ça me rend dingue, c'est qu'après avoir effacé le row ayant pour 'id' 14 (celui que je venais d'ajouter) et qu'ensuite j'en rajoute un autre, l'id devient alors '15'. Alors que ça devrait être 14 (étant donné que le row avec l'id 14 a été effacé juste avant.

Est-ce que quelqu'un parmi vous aurait l'amabilité de m'expliquer ce comportement ?

J'ai fait quelques recherches et je suis tombé sur les INDEXATIONS. J'ai compris que ça rendait les recherches dans les tables bien plus rapides que s'il n'y en avait pas. Mais, sont-ce ces 'index' qui me bousillent mon champ 'id' ?

Existe-t-il un moyen ou une commande (je sais j'en demande beaucoup ) pour qu'après chaque 'INSERT INTO'/'DELETE'/'UPDATE', cela fasse en sorte de "tout remettre en ordre" ?

Cordialement
lundi 6 octobre 2008 à 14:15:11 | Re : mysql me rend fou :(

gr43

Réponse acceptée !
Hello,
oui c'est normal et imagine la charge de traitement si ta table comporte je sais pas, par exemple 3000 champs et que tu supprime la 1ere ligne. Le SGBD devrait modif tte les lignes ainsi que la table d'index sachant que suivant l'architecture du SGBD des infos peuvent être en mem centrale sur disque ou en cash. Enfin le pb vient surtout du fait qu'une clé primaire doit être stable et unique donc ne doit pas être modif. Le mieux éviter l'autoincrément, qui posséde d'autres inconvénient, avec mysql_insert_id par ex ou créer toi même ton propre id unique avec certaines fct.
lundi 6 octobre 2008 à 14:24:42 | Re : mysql me rend fou :(

TropNul

Merci gr43.

En effet, après encore des recherches/expérimentations, j'en suis arrivé à cette conclusion aussi.

Soit j'écris le code pour une gestion complête des 'id' uniques pour mes tables ou alors je pourrais aussi utiliser une requête du genre "ALTER TABLE `nom_de_la_table`  AUTO_INCREMENT =nombrederowsactuel+1 ". Bien sur, pour la deuxieme solution, il me faudra utiliser un autre login à MySQL ayant lui les privilèges suffisants pour la commande 'ALTER'. Et cela, juste pour réajuster l'auto-increment.

Je vais tester les 2 pour voir/apprendre/comprendre.

Cordialement


Cette discussion est classée dans : mysql, id, row, rend, fou


Répondre à ce message

Sujets en rapport avec ce message

mysql_fetch_row [ par angelique ] Bonjour,Après avoir rempli un formulaire, je voudrais utiliser les résultats d'une requête pour alimenter une autre table de ma base :$resultatid = my Problème MySql!! [ par jnbrunet ] Bonjour,petit problème, je réalise un petit forum en php qui nous affiche toutes les discutions par les titres, comme le forum de cs, et lorsque l'on nl2br?? [ par jnbrunet ] Salut,Voila, j'ai un petit problème avec la comande nl2br...Voici mon code,sql:$rec = mysql_query("SELECT * FROM `users` WHERE id='$id'") OR die("Erre Problème Transfert de fichier (input type=file) [ par Hector78 ] Hello !J'ai le code suivant qui devrait m'être utile pour "simuler" un ftp interne à un site. Dans les grandes lignes, il est sensé :- permettre la sé Le dernier probleme et c'est bon :) [ par lorgard ] plop enfin re ^^le code de base$db = mysql_connect('localhost','root','') or die ("erreur de connexion");//on selectionne votre basemysql_select_db('m Affichage d'une image à partir d'un menu déroulant. [ par maxofiatpolski ] Bonjour, voici mon soucis, je l'expose en entier pour que ce soit plus compréhensible... Je souhaite qu'une image s'affiche dans une page à p php sql [ par kelm_by ] salut tous le monde je ne sais pas ouest l'erreur dans ce code??????????,merci d'avance$result = mysql_query("SELECT * FROM table ORDER BY n ASC LIMIT Paginations [ par slhuilli ] bonjourje ne sais pas apres de longues recherches comment je pourrais paginer 10 par 10 mes réponses issues d'une select * .Voici ce que j'ai :     se script site [ par killeur ] Bonjour voila je suis débutant en php et je suis en train de codé mon propre site mai voila je block sur un script voici le script Fonction php [ par davidcian ] Bonjour,Voila je suis pas trés à laise avec les fonctions:                            $req_tabl = 'SELECT *            FROM site_resa                 


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 : 0,203 sec (4)

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