$sql = "UPDATE `dzxbbs_common_member` SET newprompt=newprompt-1 WHERE uid='{$uid}'";

`dzxbbs_common_member` 表中 newprompt的类型是 smallint unsigned  长度为6的类型。

当newprompt值为0时,执行这条sql语句,得到了意想不到的结果newprompt字段值变成了65535。

出现这个问题的服务器版本是 mysql 5.1.38-log。

解决这个需要设置这个参数 sql_mode="NO_UNSIGNED_SUBTRACTION" 启用这个选项后两个UNSIGNED类型相减返回SIGNED类型。

我在本地测试的结果是报错

#1690 – BIGINT UNSIGNED value is out of range in '(`test`.`test`.`view` – 1)'

服务器版本: mysql 5.5.16

开源电商系统ecshop商品库存也存在突然变成65535的问题。

Mysql5 为了速度,只存放数二进制数据,而且在加减运算中,也是二进制的运算.

所以在使用unsigned 是小心0-1 的操作.尽量在这类操作前先做一个判断.

如果直接在程序里进行判定,难免会出现数据错误,因为有一点点时间内数据是放在内存的,而没放进库里,最好的办法还是直接送出sql语句进行修改,这里mysql5有解决办法 CONVERT( 字段 + (要加减的数字) AS SIGNED )就可以了。

例如:UPDATE `user` SET `tk` = CONVERT( tk +  (-8) ,SIGNED ) WHERE `id` = '133'

mysql修改字段类型为smallint_mysql更新 unsigned 的 smallint 类型字段出现65535相关推荐

  1. 通过java程序实现mysql 批量一个表的子段更新另一个表的字段

    本想通过sql语句实现发现不行,参考语句如下: update mo_indexes a,mo_paf_indexmid_indexname b set a.index_name='2'  where ...

  2. mysql修改字段类型语句

    mysql中字段为TEXT类型的内容怎么修改? 可以把字段类型改成MEDIUMTEXT(最多存放16777215个字符)或者LONGTEXT(最多存放4294967295个字符). MySQLsupp ...

  3. mysql 修改字段类型为字符串_MySQL中字段类型与合理的选择字段类型

    原标题:MySQL中字段类型与合理的选择字段类型 字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是 整数,另一个是 浮点数或小数. 许多不同的子类型对这些类别中的每一个都是可用 ...

  4. mysql修改数据类型_MySQL修改字段类型

    mysql> alter table 表名 modify column 字段名 类型.数据库中address表 city字段是varchar(30),修改类型可以用(谨慎修改类型,可能会导致原有 ...

  5. Mysql修改字段类型

    修改字段类型.字段名.字段注释.类型长度.字段默认值 mysql修改字段类型:      --能修改字段类型.类型长度.默认值.注释 --对某字段进行修改 ALTER  TABLE 表名 MODIFY ...

  6. mysql 修改字段类型

    修改字段类型: alter table 表名 modify column 字段名 类型. --如 alter table province_quality modify column quality ...

  7. Mysql修改表中字段名称、字段类型

    修改字段名称: ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; 修改字段类型: ALTER TABLE 表名 MODIFY COLUMN 字段名 新数据类型 新类型长度 ...

  8. MySQL 修改字段类型和字段长度

    1.修改字段类型 格式:alter table 表名 modify column 字段名 类型; 实例: 将users表的registerTime字段改为datetime类型; alter table ...

  9. mysql修改表中某个字段的默认值

    Mysql中用SQL增加.删除字段,修改字段名.字段类型.注释,调整字段顺序总结 在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或 ...

最新文章

  1. 记者因报道大厂负面遭遇死亡威胁,幕后黑手被判入狱18个月
  2. 手机版本高于xcode,xcode的快速升级
  3. Python 操作redis
  4. python最长连续子串_LeetCode 03无重复字符的最长子串(滑动窗口)
  5. 高效的判断素数---筛选法
  6. opera android 7,Opera迷你浏览器 Opera Mini 7
  7. 4KB/2MB/1GB 4级/5级分页模式下的线性地址翻译以及CR3
  8. gdi win7奔溃_win7 64位操作系统,新安装的软件一打开就崩溃,故障模块“StackHash_0a9e”,有大神知道是什么问题吗...
  9. CentOS7 一键安装KMS服务【整理】
  10. quarkus数据库篇之二:无需数据库也能运行增删改查(dev模式)
  11. 【C++】使用cmake通过源代码安装第三方库
  12. 什么叫pmt测试分析_DVT测试是什么意思?(smt术语详解)
  13. 叶檀对巴菲特索罗斯寻找新淘金地的判读
  14. SVG 绘制可交互的中国地图
  15. 反相器 CMOS制造(Fabrication)与布局(Layout)
  16. 进化树构建之邻接法(Neighbor-Joining)的介绍
  17. 二进制拆弹(炸弹炸掉了我的头发 T.T)
  18. 图卷积神经网络3-空域卷积:GNN/GraphSAGE/PGC的引入和介绍
  19. 查看服务器所有进程信息,怎么查看服务器上的所有进程
  20. 世界上最远的距离 ——泰戈尔

热门文章

  1. WCF 第五章 会话级别的实例
  2. nginx第三方库安装以及连接memcache
  3. shell中变量的替换
  4. ubuntu 在firefox,网页听不了音乐
  5. 用户与IoT同享一个WLAN时:弹性至关重要
  6. 工业物联网时代,这五大职业跻身新热门
  7. Sharding-JDBC 1.3.0发布——支持读写分离
  8. C# 强制删除文件,解除占用的几点思考
  9. C语言经典算法100例(二)
  10. 用Eclipse进行远程Debug代码