【发布时间】:2016-12-14 06:58:39
【问题描述】:
根据MySQL docs,Unsinged Bigint 的最大值 = 18446744073709551615
我在一个未签名的 Bigint 列中插入了一个值 9223372036854776900(远低于最大限制)。
没有显示错误。
当我尝试通过 JDBC 客户端以编程方式访问它时,出现异常:
com.mysql.jdbc.exceptions.jdbc4.MySQLDataException:“10”列中的“9223372036854776900”超出了数据类型 BIGINT 的有效范围。 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:422) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 在 com.mysql.jdbc.Util.getInstance(Util.java:386) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) 在 com.mysql.jdbc.ResultSetImpl.throwRangeException(ResultSetImpl.java:7964) 在 com.mysql.jdbc.ResultSetImpl.parseLongAsDouble(ResultSetImpl.java:7248) 在 com.mysql.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:2946) 在 com.mysql.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:2911)
MySQL 版本:5.5.41-0ubuntu0.14.04.1
【问题讨论】:
-
MySQL、JDBC驱动、Java哪个版本?
-
@phn 5.1。这可能是这里的罪魁祸首吗?