mysql error BIGINT UNSIGNED value is out of range in 解决办法-阿里云开发者社区

开发者社区> zchd> 正文

mysql error BIGINT UNSIGNED value is out of range in 解决办法

简介: mysql>SET sql_mode='NO_UNSIGNED_SUBTRACTION'; 类型属性   在介绍数据类型前先来介绍两个属性UNSIGNED和ZEROFILL是否使用这两个属性对选择数据类型有着莫大的关系。
+关注继续查看

mysql>SET sql_mode='NO_UNSIGNED_SUBTRACTION';

类型属性   在介绍数据类型前先来介绍两个属性UNSIGNED和ZEROFILL是否使用这两个属性对选择数据类型有着莫大的关系。   1. UNSIGNED   UNSIGNED属性就是将数字类型无符号化与C、C++这些程序语言中的unsigned含义相同。例如INT的类型范围是-2 147 483 648  2 147 483 647 INT UNSIGNED的范围类型就是0  4 294 967 295。   看起来这是一个不错的属性选项特别是对于主键是自增长的类型因为一般来说用户都希望主键是非负数。然而在实际使用中UNSIGNED可能会带来一些负面的影响示例如下  

mysql> CREATE TABLE t ( a INT UNSIGNED, b INT UNSIGNED )    ENGINE=INNODB;    Query OK, 0 rows affected (0.06 sec)    

mysql> INSERT INTO t SELECT 1,2;    Query OK, 1 row affected (0.00 sec)    Records: 1 Duplicates: 0 Warnings: 0    mysql> SELECT * FROM t\G;  

 *************************** 1. row *************************** 

mysql> SELECT a-b FROM t;    ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(`test`.`t`.`a` - `test`.`t`.`b`)'   这个错误乍看

mysql>SET sql_mode='NO_UNSIGNED_SUBTRACTION';    Query OK, 0 rows affected (0.00 sec)  

 mysql> SELECT a-b FROM t\G;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
此OracleParameterCollection 的 Count=4 的索引 4 无效 的解决办法 NHibernate
概述:      当用Nhibernate操作主从表时,往主表插入数据时,当执行到提交事务时出现如下错误: 此 OracleParameterCollection 的 Count=4 的索引 4 无效。
1256 0
junit.framework.AssertionFailedError: No tests found in错误解决办法
public void TestIDcard() throws Exception{} 报错:junit.framework.AssertionFailedError: No tests found in。
996 0
未能解析目标框架“.NETFramework,Version=v4.0”的 mscorlib 错误的解决办法
VS2010有时候莫名出现下面问题: 未能解析目标框架“.NETFramework,Version=v4.0”的 mscorlib 错误 相关的工程出现这个问题,可能是使用同步盘同步的引起的。
2271 0
Oracle 11g sys,system 密码忘记设置解决办法
原文: Oracle 11g sys,system 密码忘记设置解决办法 1.启动sqlplus 2.请输入用户名:  sqlplus/as sysdba 3.输入口令: 直接回车 4.连接到:    Oracle Database 11g Enterprise Edition Release 11.
997 0
MySQL 中两张表主键自增时,Java 后端组成树形结构的解决办法
当需要将两张不同表的数据进行合并处理,并且两张表的主键均为自增,主键同是数字。这时候需要区分的、不同的表进行取值,可以使其中一张表的主键为负数,即-1,-2,-3。 当需要把取出来的两张表分别再存进数据库时,要将之前取值是负数的主键转为正数,而转为正数的方式也很简单,也就是负负得正,即(-(...
1109 0
.Net FrameWork 4.0中使用EF向数据库插入数据报datatime2类型错误的解决办法
最近用.Net 4.0创建EF的持久层,老是在插入新数据时,报datatime2类型错误。 找了很多资料,都没有得到解决,后来我询问了我的一个同事,Tom 给我解决了这个问题。   由于EF4默认把C#的DateTime类型转换成Sql server2008的datatime2类型,所以2005的数据库不支持,最终导致程序报错。
654 0
sql server 2008 评估期已过期解决办法 + vs2008破解(转)
SQL2008破解: 以前在虚拟机中安装了SQL Server 2008简体中文版用于做实验,当时由于一时偷懒,没有输入企业版的序列号,而是安装的企业试用版(Enterprise Evaluation),能够试用180天,半年的时间我想对一个虚拟机来说还是足够了。
1779 0
SQL2008下打不开配置管理器的解决办法
  今天想复制一份SLQ2008下的数据库,需要把数据库暂停一下,但是打开资源管理器却打不打,提示无权限,因为SQL2008是VS2010附带安装的,以为程序有什么损坏,就重新安装了一下VS2010修复了一下,结果无效.
887 0
+关注
zchd
架构,编程语言相关技术专家
246
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载