c++ usigned long long range vs mysql unsigned bigint range
c++ usigned long long range vs mysql unsigned bigint range
我有一个MySQL UDF返回unsigned long long值。当我在MySQL中调用这个函数并且数据已经保存在数据库中时,MySQL返回警告:
"BIGINT UNSIGNED值超出范围".
如何在数据库中保存大型无符号长长数?
MySQL version: 5.5.43
OS: Ubuntu 14.04
请帮。
假设您的unsigned long long
数据类型是64位,它应该非常适合MySQL的BIGINT UNSIGNED
类型,也是64位。
我建议检查您的C实现limits.h
(或climits
for c++)文件的宏ULONG_MAX
,以确保它是只有64位。
你应该知道,在unsigned值上执行的某些操作也会导致这个错误。如果您只是简单地存储从UDF返回的确切值,则可能不适用,但是,如果您要执行以下操作:
select my_udf() - 22 from somewhere
and my_udf()
返回15
(例如),您将看到错误消息,因为-7
不能用unsigned类型表示。
如果是这种情况,解决方案可以就像将返回值强制转换为有符号类型一样简单,但是我们需要更多关于它可以返回什么的信息来正确地建议。
相关文章:
- 如何在 C 中正确使用 libiconv 使其不会报告"Arg list too long"?
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?
- 错误:隐式转换更改符号:'int'到'unsigned long'
- 为什么我的向量::擦除调用会抛出"vector subscript out of range"?
- C++ 向量加减抛出"expression: vector subscript out of range."错误
- 使用 range-v3 读取包含逗号分隔数据的行
- 这句话是什么意思 - " vector<long long> distance(n, std::numeric_limits<long long>::max()); "?
- C ++分割错误,为什么使用"long long"我没有得到答案?
- 对 '(const Y) (int&, std::mersenne_twister_engine<long unsigned int,
- 从 long 转换C++位集构造函数的复杂性是多少?
- 迭代的"range-based for"召唤
- 自动类型默认为 int 而不是 long
- 错误:'class std::unique_ptr<std::set<long unsigned int> >'没有名为 'size' 的成员
- C++ 我应该如何解释函数参数long(*pPointer)(OtherClass *const, long)?
- 以0开头的值初始化long-long会导致奇怪的值
- "1L << count"是什么意思?如何使用超出"unsigned long long int? "范围的语句编号打印?
- 如何解决'vector subscript out of range'错误?
- c++ usigned long long range vs mysql unsigned bigint range