Bug dans MySQL avec l'AUTO_INCREMENT et les index ?

Bug dans MySQL avec l'AUTO_INCREMENT et les index ? - Programmation

Marsh Posté le 06-03-2002 à 16:16:48    

Je créé ma table :
CREATE TABLE news (
thedate DATE not null,
id SMALLINT(5) UNSIGNED not null AUTO_INCREMENT,
post TEXT not null,
PRIMARY KEY (thedate, id)
);
Le problème c'est que quand je fais un :
INSERT INTO news VALUES (CURDATE('';), '', 'Mon texte';)
plusieurs fois (en changeant le texte de post à chaque fois !) et
le champs id s'incrémente de bien de 1 à chaque INSERT1 mais, arrivé à 10, il redémarre à 1 au lieu de se mettre à 11.
 
Par contre quand je sépare les index :
INDEX (thedate),
PRIMARY KEY (id)
pas de problème si ce n'est que mon index prend énormément de poids alors que je n'ai pas besoin d'avoir deux index différents.
 
So is it a bug, is it a problème ? Comment le résoudre ?
J'ai EasyPHP 1.5 (MySQL 3.23.40).

Reply

Marsh Posté le 06-03-2002 à 16:16:48   

Reply

Marsh Posté le 06-03-2002 à 16:25:39    

Tu es certain que ça ne vient pas plutôt de ton script autour ?
 
Est-ce que tu rentres les requêtes "à la mano" ou bien tu utilises un script, genre PERL ?
 
Parce que si as vraiment ça en rentrant toi-même les instructions SQL, c'est un bug !

Reply

Marsh Posté le 06-03-2002 à 16:30:45    

j'ai le même genre de code (aucune idée de la version de mysql) et je n'ai jamais eu de problèmes. par contre lorsque j'insère l'id j'utilise 0, pas '' (insert ... values(0, 'texte', 'texte', etc.).

Reply

Marsh Posté le 06-03-2002 à 16:31:38    

Petite précision. En fait la date change tous les 10 insertions (car je n'utilise pas vraiment la fonction CURDATE() comme j'ai indiqué)... Donc en fait le AUTO_INCREMENT se base sur le PRIMARY KEY et comme thedate change tous les 10, id se remet à 1 (ou 0, sé +) tous les 10... Ma nouvelle question est donc :
Comment passer outre cela et faire que l'id continue à s'incrémenter même s'il n'est que 2e dans la liste du PRIMARY KEY ?
 
PS : je lance les requêtes avec PHP (j'utilise une grosse boucle avec 100 000 itérations, c'est pour faire des tests).

Reply

Marsh Posté le 06-03-2002 à 16:32:58    

Re-PS: le '' pour que l'id s'incrémente automatiquement c'est PHPMyAdmin qui me l'a appris... mais je vais essayer avec 0.

Reply

Marsh Posté le 06-03-2002 à 16:35:35    

Si tu veux continuer à incrémenter id, alors, c'est id ta seule et unique primary key. Une primary key sert à identifier de manière unique une ligne.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed