Attention à TRUNCATE avec une table Inno DB

vendredi 7 octobre 2005 :: perrick :: MySQL :: 10 commentaires :: aucun trackback

Le truc avec les tests c'est qu'ils sont automatiques et précis. Très précis même. Donc quand ils renvoient un ID avec comme valeur "2" et que moi je m'attendait à une valeur "1", c'est qu'il y a un problème quelque part : une chose est sûr l'insertion de ma valeur dans la table de test ne marche pas comme il faut. Quand bien même tout à l'air de fonctionner dans l'application (un plugin pour openTIME). Après plusieurs tentatives infructueuses pour trouver l'origine du problème, je m'étais résolu -- bien malgré moi -- à accepter cette "fausse valeur".

Aujourd'hui ça recommence pour une nouvelle table : à une différence prêt, nous sommes vendredi soir et la pression de la semaine est tombée quelque peu. En creusant un peu, le problème vient d'un TRUNCATE table qui ne fonctionne pas à tous les coups. Au passage je me rends compte que mes nouvelles tables n'ont pas de type : MySQL par défaut se charge de les créer en Inno DB, alors que dans le reste d'openTIME j'utilise des tables MyISAM. J'ai eu du mal à commencer une recherche dans le manuel de MySQL : je n'ai encore jamais eu à faire à un bug dans des versions "stable". C'est donc choses faite : MySQL Bugs: #11946: truncate does not clear the auto_increment in innodb tables. Et il ne me reste qu'à attendre (et installer) MySQL 5 pour que le bug soit corrigé définitivement.