Page 1 sur 1

SQL - "Out of range value adjusted"

Posté : 19 nov. 2007, 11:32
par Berzemus
Si vous aussi tombez sur cette erreur sans arrêt, sans comprendre, voici la solution et le pourquoi en même temps.

La solution rapide, c'est entrer ceci dans le shell mysql:
SET GLOBAL SQL_MODE=”;
La lente, c'est réecrire les requêtes qui posent problème.. (ou modifier le my.ini)

Le souci (de ce que j'ai compris) vient d'une tentative d'insertion d'une valeur vide dans un champ INT.
ex: INSERT INTO nombre(id, nombre) VALUES ('','18')
Avant MySQL 5, ça passait comme une lettre à la poste, mais depuis, plus (d'ou le souci).

Il faut donc soit passer une valeur, soit inscire NULL.

EDIT (important): PS pour la solution rapide: elle risque de corrompre les données, donc dans le cas d'une urgence, éventuellement, mais à réecrivez ou réetudiez vos données le plus rapidement possible.

Re: SQL - "Out of range value adjusted"

Posté : 19 nov. 2007, 11:42
par Hubert Roksor
Si vous aussi tombez sur cette erreur sans arrêt, sans comprendre, voici [...]
Stoooooooooop. Si vous tombez sur cette erreur sans arrêt, comprenez que vous avez choisi un type de colonne trop limité pour les données que vous essayez d'y rentrer alors changez-le pour le modèle supérieur:
TINYINT -> SMALLINT -> MEDIUMINT -> INT -> BIGINT

Si tu supprimes ce message d'erreur, les données sont corrompues et tu te retrouves à vendre des jet-skis à 255 €... :roll:

Re: SQL - "Out of range value adjusted"

Posté : 19 nov. 2007, 12:02
par Truc
Si tu supprimes ce message d'erreur, les données sont corrompues et tu te retrouves à vendre des jet-skis à 255 €... :roll:
J'en prends un :D

Posté : 19 nov. 2007, 12:24
par zeus
Pour aller dans le sens d'Hubert, ce que tu proposes reviens à cacher la poussière sous le tapis en disant "Je vois plus le problème, il n'y a plus de problème" ;)

PS : c'est pas une critique, juste une illustration

Posté : 19 nov. 2007, 12:57
par Hubert Roksor
Remplace "poussière" par "charbon incandescent" et tu auras une meilleure idée des répercussions possibles :lol:

Posté : 19 nov. 2007, 14:21
par Sékiltoyai
Au passage, l'explication complète est ici : http://dev.mysql.com/doc/refman/5.0/en/ ... -mode.html

Le problème vient du fait que selon le mode de gestion des données, en cas de données invalides, le serveur MySQL peut soit les ramener à des données valides comme il le fait par défaut, soit les rejeter, conformément au standard SQL

Posté : 19 nov. 2007, 15:24
par Berzemus
.. donc, le mieux, c'est de réecrire les requêtes ^-^
(merci, apparament, je cernais pas encore l'étendue du problême..)

Ceci dit, je vais devoir le faire, puisque je remarque des inconsistances.. tout à coup, j'ai des jetskis à 255€ dans ma db..

Posté : 19 nov. 2007, 22:32
par Hubert Roksor
.. donc, le mieux, c'est de réecrire les requêtes
Exactement :pouce: On essaiera toujours de comprendre un message d'erreur pour le corriger à sa source. C'est comme le battement d'aile du papillon, même un tout petit problème comme une variable non définie peut avoir des répercussions catastrophiques, donc en fait on gagne du temps en réparant systématiquement chaque erreur rencontrée.