bigint unsigned 插入表数据大于9233372036854775807,显示为0?

dandan02 2010-05-11 09:33:55
BIGINT:8字节 大整数,带符号:-9223372036854775808~9233372036854775807,
不带符号:0~18446744073709551615
为什么定义为bigint unsigned数据类型后,还是不能存储大于9233372036854775807的数据。
...全文
293 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2010-05-11
  • 打赏
  • 举报
回复
看上面狼头的测试代码,你的

unsigned

在哪里
dandan02 2010-05-11
  • 打赏
  • 举报
回复
CREATE TABLE `data2010_5_10` (
`id` bigint(20) default NULL,
`instance` varchar(100) default NULL,
`ttime` bigint(20) default NULL,
`vvalue` bigint(21) unsigned default NULL,
KEY `polleddata0_ndx` (`pollid`),
KEY `polleddata1_ndx` (`instance`),
KEY `polleddata2_ndx` (`ttime`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1


insert into data2010_5_10(id,instance,ttime,vvalue) values(3,'3.3.2',1273481590, 9223372036854775809)

执行时提示成功,但是表格中的vvalue字段值显示为0。
ACMAIN_CHM 2010-05-11
  • 打赏
  • 举报
回复
建议你用如下语句测试一下。
mysql> create table tx ( id BIGINT unsigned);
Query OK, 0 rows affected (0.16 sec)

mysql> insert into tx values (18446744073709551615);
Query OK, 1 row affected (0.05 sec)

mysql> select * from tx;
+----------------------+
| id |
+----------------------+
| 18446744073709551615 |
+----------------------+
1 row in set (0.00 sec)

mysql>
ACMAIN_CHM 2010-05-11
  • 打赏
  • 举报
回复
给出你的建表 create table 语句和 insert 语句,应该可以啊。
dandan02 2010-05-11
  • 打赏
  • 举报
回复
是工具显示的问题。
ACMAIN_CHM 2010-05-11
  • 打赏
  • 举报
回复
如下测试,没有你说的问题,建议你也同样贴出你的代码如下,否则你只是说说是0,但具体是什么呢?
另外,建议贴出来的测试代码先自己试一下,错误的代码别人还要帮你排错。

mysql> CREATE TABLE `data2010_5_10` (
-> `id` bigint(20) default NULL,
-> `instance` varchar(100) default NULL,
-> `ttime` bigint(20) default NULL,
-> `vvalue` bigint(21) unsigned default NULL,
-> KEY `polleddata0_ndx` (`pollid`),
-> KEY `polleddata1_ndx` (`instance`),
-> KEY `polleddata2_ndx` (`ttime`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ERROR 1072 (42000): Key column 'pollid' doesn't exist in table

mysql> CREATE TABLE `data2010_5_10` (
-> `id` bigint(20) default NULL,
-> `instance` varchar(100) default NULL,
-> `ttime` bigint(20) default NULL,
-> `vvalue` bigint(21) unsigned default NULL,
-> KEY `polleddata1_ndx` (`instance`),
-> KEY `polleddata2_ndx` (`ttime`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=latin1
-> ;
Query OK, 0 rows affected (0.08 sec)

mysql> insert into data2010_5_10(id,instance,ttime,vvalue) values(3,'3.3.2',1273
481590, 9223372036854775809);
Query OK, 1 row affected (0.03 sec)

mysql> select * from data2010_5_10;
+------+----------+------------+---------------------+
| id | instance | ttime | vvalue |
+------+----------+------------+---------------------+
| 3 | 3.3.2 | 1273481590 | 9223372036854775809 |
+------+----------+------------+---------------------+
1 row in set (0.00 sec)

mysql>

56,682

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧