Mysql - depassement du type


chava2b
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 263
Inscription: 5 Déc 2003

Mysql - depassement du type

Message le Lun Fév 25, 2008 14:00

Salut,

J'ai un champs tinyint en unsigned, donc valeur de 0 à 255.

je decremente ce champ avec :

UPDATE table SET champs=champs-1

Si la valeur arrive à zero, au lieu de rester à zero, lorsque je refais un update, ca repart à 255

Ce qui me surprend c'est que ca ne le fais pas sur mon serveur local.

Y une config pour que ca reste à zero ?

jarreweb
WRInaute discret
WRInaute discret
 
Messages: 192
Inscription: 12 Sep 2003

Message le Lun Fév 25, 2008 16:29

en effet, étrange comme comportement
vérifie quand même la valeur de ton champ, pour connaitre sa valeur.
à ma connaissance, pas d'option pour que ca reste à 0 vu que ca doit rester à 0
petite question : pourquoi décrémentes-tu un champ de ta base de données ?


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 911
Inscription: 5 Aoû 2003

Message le Lun Fév 25, 2008 16:32

en effet curieux
je te conseillerais plutôt de faire ceci :

UPDATE table SET champ = if(champ > 0, champ-1, 0)


chava2b
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 263
Inscription: 5 Déc 2003

Message le Lun Fév 25, 2008 17:00

jarreweb, c'est pour gerer mon stock.

Ok julien, c'est domage de faire un test quand normalement y a pas besoin, mais bon, la je seche et je n'ai pas envie de passer 10h dessus!

Merci

petit-ourson
WRInaute impliqué
WRInaute impliqué
 
Messages: 855
Inscription: 31 Mai 2004

Message le Lun Fév 25, 2008 17:05

Ceci dit, si mySql respectait bien les types "0-1" ne devrait même pas être exécuté.

Tu règles le problèmes avec un trigger (si la version de mysql te le permet) comme cela, tout sera transparent dans tes programmes.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités