MYSQL: DELETE et autoincrementation - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : MYSQL: DELETE et autoincrementation (/showthread.php?tid=5358) |
MYSQL: DELETE et autoincrementation - php_addict - 04-04-2011 bonsoir je me trouve face à un petit soucis avec une table ayant un primary index en autoincremente les rapports d'attaques sont relatifs aux villages (assignés, table relationelle) en supprimant un village avec DELETE puis en créant un nouveau village, les anciens rapports du village qui n'existe plus sont visibles par le nouveau village la seule explication que je vois c'est que la derniere entrée de la table villages ayant été suprimée, le autoincremente aurait pu être décrementé je suis tombé sur ceci: http://bugs.mysql.com/bug.php?id=3047 et donc j'ai compris que ce n'était pas possible, mais c'est pourtant la seule explication que j'ai trouvé... avez vous déjà eu des problèmes en cas de DELETE sur une table avec un primary index en autoincremente et que l'autoincremente soit mis à jour apres un DELETE ? désolé si ce n'est pas très clair... RE: MYSQL: DELETE et autoincrementation - Sephi-Chan - 04-04-2011 L'auto-increment ne redescend pas quand on supprime une ligne. :o Comment crées-tu les villages ? Tu leur donnes explicitement un ID ? Sephi-Chan RE: MYSQL: DELETE et autoincrementation - php_addict - 04-04-2011 (04-04-2011, 08:48 PM)Sephi-Chan a écrit : Comment crées-tu les villages ? Tu leur donnes explicitement un ID ? non, je ne lui donne pas d'id, et le tout est dans une transaction commit je fais un truc du genre (y a pas toutes les valeurs pour que cela soit clair...)
et pour le DELETE:
et pire que tout je n'arrive pas à reproduire ce bug...d'ailleur je me demande dans quel fichier mysql stock les data des autoincremente... RE: MYSQL: DELETE et autoincrementation - Sephi-Chan - 04-04-2011 Pour récupérer la prochaine valeur de l'auto-increment, tu peux faire :
Je pense que si tu n'arrives pas à reproduire le bug, c'est peut-être parce que tu as donné manuellement une valeur à un ID lors d'un test/debug. Non ? Sephi-Chan RE: MYSQL: DELETE et autoincrementation - php_addict - 04-04-2011 il est vrai que j'ai fais pas mal de test/debug aujourdh'ui, mais pourtant je suis certain de ne pas avoir donner manuellement un id primary index...cela restera un mystère... juste pour être certain: rien ne peut modifier la valeur de l'autoincremente hormis un INSERT (sans préciser l'id de la clef primaire) non ? RE: MYSQL: DELETE et autoincrementation - Ter Rowan - 05-04-2011 si dans php admin, tu peux changer la valeur actuelle de l auto incrémente donc doit y avoir moyen par ordre sql aussi RE: MYSQL: DELETE et autoincrementation - atra27 - 05-04-2011 UPDATE information_schema.TABLES SET AUTO_INCREMENT=X WHERE table_name = 'villages'; non? |