|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() Inscription : avril 2004 Messages : 56 ![]() |
Serveur : 3.23.58
PHP : 4.3.3 bdd : mabase table : menu Bonjour, je débute avec MySQL et j'ai un petit souci. Je souhaites créer une table à l'aide d'une requête SQL, mais le serveur me renvoit une erreur : Code :
Ci-dessous la requête complète : ---------------------------------------------------- Code :
[234 lignes de code supprimées |
||||
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2004 Messages : 60 ![]() |
J'avoue que le problème me semble étrange... et si tu introduis réllement "128", il est effectivement bizarre que le message d'erreur mentionne "127".
Est-ce la seule insertion ou tu rencontres un problème? As-tu réussi à introduire des menus avec un m_id plus élevé? Mais ce qui m'interpelle particulièrement, c'est que j'ai l'impression qu'à chaqe fois le numéro de m_id est inséré alors qu'il est sensé être auto-incrément. Les cas ou une primary key auto-incrépentée doit être introduite sont assez rare. Si j'étais toi, je ne le préciserais pas lors de l'insertion, et alors tu ne rencontrerais pas de problème théoriquement. Ou alors, je changerais le type de ma clef primaire pour qu'elle ne soit pas auto-incrémentée. Maintenant, il est possible qu'il y ait une raison cachée à cela, et si c'est le cas, oublions ce que j'ai écrit... |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : avril 2004 Messages : 56 ![]() |
Merci DRAG pour tes idées ; j'ai éssayé pas mal de chose dans le même genre. Ne pas spécifier les entrées de la clef primaire (m_id) puisqu'elles sont auto-incrémentées, mais cela provoque une erreur #1064 (je les collectionne décidément) puisqu'il manque une valeur sur un champ NOTNULL.
Le vrai problème n'est pas là, c'est que je ne parviens pas à cerner d'où vient le problème, si c'est la requête qui comporte un erreur, si c'est la table qui n'est pas correcte ou autre chose que j'ignore. J'usqu'à présent je me contentais de faire de petite table pour tester mes scripts PHP, je n'ai donc pas réalisé une table plus importante. merci pour la réponse |
|
|
00
|
|
|
#4 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2004 Messages : 56 ![]() |
Bon j'ai trouvé une solution à mon problème :
Il suffit de changer la taille du champ (m_id) qui sert de clef primaire (auto-increment); le passer de TINYINT à INT : Code :
Si un expert peut nous donner une ecplication plus claire, elle sera bien venu |
||
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2004 Messages : 60 ![]() |
Bah, en fait, vu comme cela, l'explication est très simple
tinyint est stocké sur un octet, soit 8 bits. Cela te permet d'avoir ( 2 exposant 8 ) valeurs, soit 256 valeurs. N'ayant pas précisé que ta valeur ne peut être que positive, tu perds un peu de mémoire, et au lieu de pouvoir aller de 0 à 255, tu ne pouvais aller que de -128 à 127. Il était donc logique que ton insertion pose un problème à partir du 128. Par contre je maintiens qu'il n'est pas logique de devoir insérer le numéro de menu alors que tu es en auto-incrémenté! Si j'étais toi, je préfèrerais même permettre à ce champ d'être null, de toute facon il se remplira obligatoirement seul (mais normalement, même sans permettre le null, ce devrait fonctionner). Parcequ'avoir un champ auto-incrémenté que l'on rempli à chaque fois soi-même, ce n'est pas très cohérent... J'avoue que je ne sais pas ce qu'est sensé faire le "AUTO_INCREMENT=160"...peut-être que cela a une influence... [édité pour cause de smiley involontaire. Celui-ci d'ailleurs: 8) ] |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : avril 2004 Messages : 56 ![]() |
Je peux pas te dire Drag si c'est cohérent, en tout cas c'est le SQL exporter depuis MySQL pour sauvegarder les données. Ensuite quand j'ajoute de nouvelles valeurs soit par script PHP, soit directement via MySQL, l'auto-incrément fonctionne normalement, c'est à dire que je ne précise pas la valeur auto-incrémentée.
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : juin 2004 Messages : 1 ![]() |
changer tinyint to int.
bonne chance |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com