Mysql - depassement du type

WRInaute occasionnel
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 ?
 
WRInaute discret
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 ?
 
WRInaute impliqué
en effet curieux
je te conseillerais plutôt de faire ceci :

UPDATE table SET champ = if(champ > 0, champ-1, 0)
 
WRInaute occasionnel
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
 
WRInaute impliqué
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.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut